无法让跨域 getJSON 调用在 Internet Explorer 上运行,在 Firefox 上运行良好,在 IE 和 Firefox 的单个域上运行

Posted

技术标签:

【中文标题】无法让跨域 getJSON 调用在 Internet Explorer 上运行,在 Firefox 上运行良好,在 IE 和 Firefox 的单个域上运行【英文标题】:Can't get cross-domain getJSON calls to work on Internet Explorer, works fine on Firefox, and works on single domain for both IE and Firefox 【发布时间】:2011-11-18 23:16:34 【问题描述】:

我遇到了一个非常奇怪的问题,我正在使用 .getJSON 到另一个 url,我已经添加了

Header add Access-Control-Allow-Origin "*"

进入我的页面以允许跨域 JSONP 调用。在 Firefox 上一切正常,但当我使用 IE 时却不行,脚本只在一个域上工作时工作正常,但是当从另一个域进行调用时,结果似乎根本没有返回。

是否有可能特定于浏览器的阻止它?如果是这样,有什么办法可以解决这个问题?

    $.getJSON(url + "controller.php?suppliesfinderaction=getModelBrands", function (results) 
                if(results.result == 1) 
                    setOptions($brand, results.data, "brand", "brand");
                    $brand.attr("disabled", false);
                 else 
                    setErrors($this, results['errors']);
                
            );

【问题讨论】:

【参考方案1】:

您需要添加“回调=?”到您的 url 的查询字符串,以便 Jsonp 工作。

【讨论】:

以上是关于无法让跨域 getJSON 调用在 Internet Explorer 上运行,在 Firefox 上运行良好,在 IE 和 Firefox 的单个域上运行的主要内容,如果未能解决你的问题,请参考以下文章

jquery .getJSON 跨域请求 报 Url错误 。callback=?用与跨域的参数,急啊 高手帮忙解决一下。

jquery使用$.getJson()跨域大数据量请求方法

jQuery中$.getJSON

PHP中运用jQuery的Ajax跨域调用实现代码

jquery的ajax和getJson跨域获取json数据

jQuery异步请求(如getJSON)跨域解决方案