0

我发现为了能够在 Internet Explorer 中跨域发送数据,我应该使用XDomainRequest.

通过这样做,我偶然发现了下一个问题。我正在将数据从 HTTP 发送到 HTTPS,这给出了错误SCRIPT5: Access is denied.。我尝试添加header("Access-Control-Allow-Origin: *");到指定的 PHP 文件,但没有结果。

有什么办法可以解决这个问题,我可以在 Internet Explorer 9+ 中将数据从我的 HTTP 域发送到我的 HTTPS 域?

我现在正在使用的代码(这给出了 script5 错误):

if ('XDomainRequest' in window && window.XDomainRequest !== null) {
    var xdr = new XDomainRequest(); // Use Microsoft XDR
    xdr.open('get', url);
    xdr.onload = function () {
        var dom  = new ActiveXObject('Microsoft.XMLDOM'),
        JSON = $.parseJSON(xdr.responseText);

        dom.async = false;

        if (JSON == null || typeof (JSON) == 'undefined') {
            JSON = $.parseJSON(data.firstChild.textContent);
            console.log(JSON);
        }

        successCallback(JSON); // internal function
    };

    xdr.onerror = function() {
        _result = false;  
    };

    xdr.send();
}

我也尝试添加$.support.cors = true;没有结果。

4

1 回答 1

0

回答我自己的问题:我已经使用以下方法修复了它JSONP

$.ajax({
    url: url,
    data: thedata,
    dataType: 'jsonp',
    jsonp: 'callback',
    jsonpCallback: 'jsonpCallbackFunc',
    success: function (response) {

    }
});
于 2014-06-05T08:14:11.530 回答