2012-08-01 23 views
1

我有一個HTML頁面,這就需要使用一個Ajax請求在不同的服務器上訪問資源:對同源策略的解決方法,重定向到單獨的頁面?

$.ajax({ 
     url: "externalUrl/myjson.js",  

     }); 

但由於「同源策略」的我是無法訪問的資源。作爲解決方法,我修改了只重定向到單獨服務器上的新頁面的html頁面。這個新頁面調用ajax請求時沒有問題,因爲它是從同一個源發佈的。這是一個可接受的解決方法嗎?

+2

您是否嘗試使用'jsonp'作爲數據類型提取外部資源? – kei 2012-08-01 15:09:50

回答

2

同源策略不是一個法律或任何東西,只是一個內置於瀏覽器的措施,以防止XSRF和東西。如果您找到了適合您的解決方案,那麼對此沒有任何「不可接受的」。

+0

這極不可能適用於所有主流瀏覽器/版本。 – mirezus 2012-08-03 20:02:04

0

嘗試使用jsonp作爲jQuery.ajax中的dataType屬性。遠程服務器也需要支持jsonp。它將繞過防止XSS的瀏覽器安全問題。

這將繞過XSS的瀏覽器安全。你打電話給的URL將需要返回jsonp以及這個工作。

$.ajax({ 
     url: "externalUrl/myjson.js",  
     dataType: jsonp 
     });