0

所有,这可能是经常重复的问题..但我已经在这个问题上待了一天多..到目前为止,它令人失望和沮丧.. :(

function (url, requestData) {
var jqryXHR = $.ajax({
    type: 'POST',
    url: anotherDomainurl,
    //contentType: 'application/json; charset=UTF-8',
    data: {
        requestParams: requestData
    }
});

}

这在 FF 和 Chrome 中可以正常工作,但在 IE 上不行。在 IE 中,调用本身没有被触发。我应该怎么做才能让它工作......并且要求是使用 POST 进行调用。

我的服务器端代码是 java 并且正在设置

header('Access-Control-Allow-Origin', '*.anotherDomain.com');

问候

4

2 回答 2

0

使用 jsonp。它提供了一种从不同域中的服务器请求数据的方法。

http://remysharp.com/2007/10/08/what-is-jsonp/

于 2013-05-23T10:00:25.253 回答
0

终于可以解决问题了...

对于 IE,我们必须使用

跨域调用的跨域请求 (XDR)..而不是 XMLHttpRequest

参考:http: //msdn.microsoft.com/en-us/library/dd573303%28v=vs.85%29.aspx

使用 XDR 时有一些限制,可以查看@

http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx

if (window.XDomainRequest) {    
            var xdr = new XDomainRequest();
            xdr.open("POST", url);
            xdr.onload = function () {};
            xdr.onerror = function() {};
            xdr.onprogress = function() {};
            xdr.send("requestData="+jsonData);
    } else{
         jQuery.support.cors = true;
            var jqXHR = $.ajax({
                type : 'POST',
                url : url,
                crossDomain: true,
                data : {
                    requestData : jsonData
                }
        });         
    }

同样在服务器端,响应应该添加标头

Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers

于 2013-10-31T09:19:01.607 回答