您好我已经构建了一个Web应用程序,一切正常,直到我在IE9上使用来自其他域的JSON文件进行测试
基本上所有的JSON文件都存储在AMAZON上。
第一次加载的想法是我得到一个site.json文件并初始化并设置应用程序 - 但在IE9中以及定期在Safari和Chrome中我收到跨域错误
所以这是我主页头部的一些摘录
<meta http-equiv="Access-Control-Allow-Origin" content="*"/>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js"></script>
<script type="text/javascript">
var SiteConfig, frameworkHost;
$(document).ready(function() {
var promise = $.ajax({
url: '//s3-ap-southeast-2.amazonaws.com/****/site.json',
method: 'get',
dataType: 'json'
});
$.when(promise).then(function(result) {
SiteConfig = result.data;
frameworkHost = '//s3-ap-southeast-2.amazonaws.com/**/public_html';
var requireTag = document.createElement('script');
requireTag.setAttribute('type', 'text/javascript');
requireTag.setAttribute('src', frameworkHost + '/js/require/require.js');
requireTag.setAttribute('data-main', frameworkHost + '/js/bootstrap');
document.head.appendChild(requireTag);
});
});
</script>
但问题是,一旦获取site.json的url在IE9上不是本地的,它就会失败。
另外在chrome和iphone 4s上使用ios 5进行Safari游戏时我会收到此错误
XMLHttpRequest无法加载http://s3-ap-southeast-2.amazonaws.com/ * 。原点Access-Control-Allow-Origin
不允许当我清除缓存时,这有效。它在FF上完美运行。
有人可以帮忙吗?
由于
答案 0 :(得分:0)
if ($.browser.msie && window.XDomainRequest) {
// Use Microsoft XDR
var xdr = new XDomainRequest();
xdr.open("get", "someurl");
xdr.onload = function () {
var JSON = $.parseJSON(xdr.responseText);
if (JSON == null || typeof (JSON) == 'undefined')
{
JSON = $.parseJSON(data.firstChild.textContent);
}
processData(JSON);
};
xdr.send();
} else {
$.ajax({
type: 'GET',
url: "someurl",
processData: true,
data: {},
dataType: "json",
success: function (data) { processData(data); }
});
}