Gar*_*ett 123 jquery jsonp cross-domain cors internet-explorer-9
以下适用于IE以外的所有浏览器(我在IE 9中测试).
jQuery.support.cors = true;
...
        $.ajax(
            url + "messages/postMessageReadByPersonEmail",
            {
                crossDomain: true,
                data: {
                    messageId       : messageId,
                    personEmail     : personEmail
                },
                success: function() {
                    alert('marked as read');
                },
                error: function(a,b,c) {
                    alert('failed');
                },
                type: 'post'
            }
        );
我有另一个使用的函数dataType: 'jsonp',但我不需要在这个AJAX调用上返回任何数据.我的最后一招将是返回JSONP中包含的一些乱码,以使其正常工作.
任何想法为什么IE搞砸了没有返回数据的CORS请求?
den*_*isg 149
这是jQuery的一个已知错误.jQuery团队"没有计划在核心中支持这个,并且更适合作为插件." (见评论).IE浏览器无法使用XMLHttpRequest的,但命名的替代对象XDomainRequest.
还有就是可以支持这jQuery的一个插件,它可以在这里找到: https://github.com/jaubourg/ajaxHooks/blob/master/src/xdr.js
编辑 
该功能$.ajaxTransport注册运输工厂.甲转运用于内部由$.ajax执行请求.因此,我认为你应该$.ajax像往常一样打电话.有关运输商和延伸的信息$.ajax可以在这里找到.
此外,可以在此处找到此插件的更好版本.
另外两个说明:
编辑2:http到https问题
请求必须以与托管页面相同的方案为目标
此限制意味着如果您的AJAX页面位于 http://example.com,那么您的目标URL也必须以HTTP开头.同样,如果您的AJAX页面位于https://example.com,那么您的目标网址也必须以HTTPS开头.
资料来源:http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx
Jac*_*sey 62
建立@dennisg接受的答案,我使用MoonScript的jQuery.XDomainRequest.js 成功完成了这个.
以下代码在Chrome,Firefox和IE10中正常运行,但在IE9中失败.我只是包含了脚本,它现在可以在IE9中自动运行.(可能是8,但我还没有测试过.)
var displayTweets = function () {
    $.ajax({
        cache: false,
        type: 'GET',
        crossDomain: true,
        url: Site.config().apiRoot + '/Api/GetTwitterFeed',
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: function (data) {
            for (var tweet in data) {
                displayTweet(data[tweet]);
            }
        }
    });
};
Moo*_*ipt 16
有关如何使用"jQuery-ajaxTransport-XDomainRequest"插件执行此操作的完整说明,请访问:https: //github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest#instructions
该插件得到了积极支持,并处理HTML,JSON和XML.该文件也托管在CDNJS上,因此您可以直接将脚本放入页面而无需其他设置:http: //cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.1/jquery.xdomainrequest .min.js
| 归档时间: | 
 | 
| 查看次数: | 142873 次 | 
| 最近记录: |