获取JSON文件跨域所有浏览器

Getting JSON Files cross domain for all browsers

本文关键字:浏览器 JSON 文件 获取      更新时间:2023-09-26

嗨,我已经建立了一个web应用程序,一切都很好,直到我在IE9上测试了来自另一个域的JSON文件

基本上我们所有的JSON文件都存储在AMAZON上。

第一次加载的想法是我得到一个站点。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>

但问题是,只要url得到网站。json在IE9上不是本地的,它失败了。

同样在chrome和safari上的iphone 4s与ios 5有时我得到这个错误

XMLHttpRequest无法加载http://s3-ap-southeast-2.amazonaws.com/*。Access-Control-Allow-Origin

不允许

当我清除缓存时,这是有效的。它在FF上运行完美。

有人能帮忙吗?

谢谢

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); }
      });
}