我需要使用json将数据发布到跨域Web服务。这在ie10 +中完美地起作用,但在ie8 / 9中不起作用。
研究后我发现我需要使用XDomainRequest但不确定如何格式化数据。
例如,我可以只在我的JSON对象周围包装一个字符串并发送它,还是需要在名称值对中?
我正在发送
{
"field": {
"field": "blah",
"field": "blah",
"field": "blah",
"field": "blah",
"field": [
"ML08BWV",
"MJ08OJF",
"MJ10PYO",
"FT10EXZ",
"SH57XUM"
]}
}
我肯定会点击服务器,但服务器日志表明我不会在请求有效负载中发送任何数据。 :/
编辑:Javascript代码
var xdr = new XDomainRequest(); // Use Microsoft XDR
xdr.open('POST', URL);
xdr.onload = function () {
//xdr.contentType = "application/json";
var dom = new ActiveXObject('Microsoft.XMLDOM'), JSON = $.parseJSON(xdr.responseText);
dom.async = false;
if (JSON == null || typeof (JSON) == 'undefined') {
JSON = $.parseJSON(data.firstChild.textContent);
}
//Do something with json
};
xdr.onerror = function () {
_result = false;
};
xdr.ontimeout = function () {
alert('xdr ontimeout');
};
xdr.onprogress = function () {
alert("XDR onprogress");
alert("Got: " + xdr.responseText);
};
xdr.send("json=" + dataToSend);
dataToSend采用上面发布的json格式