2012-08-28 39 views
0

Possible Duplicate:
Access Control Allow Origin not allowed by
Origin is not allowed by Access-Control-Allow-Origin呼叫vaadin申請表PHP與jQuery

我用這個代碼來調用PHP頁面vaadin應用:

$.get(
    "http://192.168.10.106:8080/FTTBManager/?restartApplication", 
    { activate: "1", username: "[email protected]" }, 
    function(result) { 
     alert ("Result Was : " +result); 
     $('#divout').html(result); 
    }, 
    "text" 
) 

,但我得到了以下錯誤:

Origin localhost is not allowed by Access-Control-Allow-Origin.

+0

這是哪裏的代碼運行的呢? 'HTTP:// 192.168.10.106'? – Eric

+0

您的錯誤是相當具有描述性 – hsalama

+0

轉到這些stackoverflow鏈接:[access-control-allow-origin-not-allowed-by](http://stackoverflow.com/questions/9327218/access-control-allow-origin- not-allowed-by) - [origin-is-not-by-access-control-allow-origin](http://stackoverflow.com/questions/10143093/origin-is-not-allowed-by-access -control-allow-origin) - [jquery-xml-rest-access-control-allow-origin](http://stackoverflow.com/questions/4621056/jquery-xml-rest-access-control-allow-origin) - [xmlhttprequest-origin-null-is-not-allowed-access-control-access-allow-for-file](http://stackoverflow.com/questions/4208530/xmlhttprequest-o –

回答

0

您似乎試圖從服務器(192.168.10.106:8080)訪問URL,該URL不同於從(localhost)加載頁面的URL。這被稱爲跨源請求,並被大多數現代瀏覽器阻止。如果你想允許這個請求,目標服務器(192.168.10.106:8080)必須在HTTP標題中提供這些信息。

更多細節

http://en.wikipedia.org/wiki/Cross-origin_resource_sharing請注意,Internet Explorer 8中似乎要禁止從localhost非本地主機即使目標服務器具有CORS標頭的任何請求。因此,您可能需要在非本地主機服務器或不同瀏覽器上測試相同的內容。

0

同源策略不允許你做一個Ajax請求到另一個域/端口/協議
和vaadin應用是不應該這樣的
你可以嘗試用iframe嵌入在你的PHP頁面的vaadin應用工作

You can try this fiddle

+0

我已經更改爲本地主機,但我我仍然得到相同的錯誤 – danarj

+0

謝謝你的答案。vaadin應用程序是一個沒有GUI或類似的工作線程。iframe在這種情況下如何解決問題? – danarj

+0

if它沒有任何UI,你爲什麼要使用Vaadin? 和iframe在這種情況下仍然可以解決問題,只是不要讓iframe顯示(您可以以編程方式在您的事件處理程序中創建iframe),仍然會發出請求。 如果它必須是ajax/xhr,你可以在你的一個php頁面發送請求到你的vaadin應用程序,那麼ajax請求會發送請求到那個php頁面 –

0

/FTTBManager/URL是PHP頁面添加

header('Access-Control-Allow-Origin: *');