我已经发现,为了能够在Internet Explorer中发送跨域数据,我应该使用XDomainRequest
。
通过这样做我偶然发现了下一个问题。我正在将数据从HTTP发送到HTTPS,这会产生错误SCRIPT5: Access is denied.
。我尝试将header("Access-Control-Allow-Origin: *");
添加到指定的PHP文件中但没有结果。
有没有解决这个问题的方法,我可以将数据从HTTP域发送到Internet Explorer 9+中的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;
但没有结果。
答案 0 :(得分:0)
回答我自己的问题:
我已使用JSONP
修正了它:
$.ajax({
url: url,
data: thedata,
dataType: 'jsonp',
jsonp: 'callback',
jsonpCallback: 'jsonpCallbackFunc',
success: function (response) {
}
});