2012-05-21 45 views

回答

0

如果您想進行跨域調用,您需要使用JSONP

這意味着您可以更改服務器代碼,以便標頭顯示此授權的跨域呼叫。根據您的服務器的語言,你必須做這樣的事情:

w.Header().Set("Access-Control-Allow-Origin", "*") 
w.Header().Set("Access-Control-Request-Method", "GET") 
w.Header().Set("content-type", "application/x-javascript") // this one of course for json calls 

使用JSONP而不是JSON也將意味着你會附上您JSON在函數調用,例如

acceptServerAnswer({'thisis':'myjson']) 
+0

0票下來接受 \t 但我的問題是,我可能使用相同的域名。只有子域是不同的。協議是一個http和其他協議。我必須爲每個子域安裝單獨的證書嗎? –

+0

當你使用不同的端口(http是80和https是443)時,你正在瀏覽器中進行「跨域」操作。沒有鏈接到證書問題,這實際上只是瀏覽器不接受從一個端口到另一個端口的常規ajax/json請求(即使使用相同的域和相同的協議),因此您必須使用代理進行轉發或使用其他系統(JSONP很可能是理想的解決方案)。 –

0

使用服務器端代理或JSON

http://devlog.info/2010/03/10/cross-domain-ajax

+0

得到了解決方案。將Header集Access-Control-Allow-Origin *添加到服務器根目錄中的.htaccess文件中。 http://www.skill-guru.com/blog/2011/02/04/adding-access-control-allow-origin-to-server-for-cross-domain-scripting/ –