一切都運行完美在Firefox和Chrome,但除了在IE8(8.0.6001.18702)IE8 XSS/jQuery的問題
這是測試代碼(jQuery的1.4.2)(同樣的問題。員額$):
$(function() {
$.get("http://domain2.tld/some.php", {}, function(response) {
alert(response);
});
});
這個代碼在執行domain1.tld並從domain2.tld加載,這樣說:
<script type="text/javascript" src="http://domain2.tld/test.js"></script>
我得到一個IE8中的「權限被拒絕」的消息。到目前爲止我曾嘗試沒有成功:
1)在domain1.tld加入(PHP代碼):
header("X-XSS-Protection: 0");
2)在IE8選項禁用XSS濾波器。
我使用IE8的調試器,它體現在5113線的錯誤:
xhr.open(type, s.url, s.async);
如果不是調用$獲得(domain2.tld ...),我調用$獲得(DOMAIN1。 tld ...)沒有錯誤,這證實了我是XSS「同源策略」問題。
我唯一的解決方案(我認爲)是通過代理(php代碼)來完成的,但我不希望這樣做會影響性能。
有人知道這個問題的替代/修復嗎?
注意:更新IE8不是一個選項,因爲我想在沒有更新的情況下測試它。
一個非常類似的問題,以我的: http://forum.jquery.com/topic/jquery-ui-tabs-ie8-and-injecting-elements-into-dom
謝謝!但是,最近在使用這種方法來處理邊緣情況時,我發現它稍微打破了'$ .get'和'$ .post'的本地功能,它們每個都返回一個jqXHR對象。通過修改代碼中的try塊可以很容易地修復這個問題以讀取'return $ ._ get(url,data,callback,type);'和'return $ ._ post(url,data,callback,type);' – itsmequinn 2013-01-17 20:09:20