我最近开始在IOS设备上的jquery ajax调用上收到以下消息:
错误:NETWORK_ERR: XMLHttpRequest异常101
ajax呼叫在所有设备上运行了好几个月,但我的一个客户上周开始收到此消息。
我已经阅读了一些有关它是跨域请求的问题,但在这种情况下不应该适用。
我还读过,将async更改为true将解决问题,但如果可以,我想避免这样做。
这是ajax调用:
serverSideFunction参数的格式为“AdvancedDistribution.aspx / SaveClicked” 其中AdvancedDistribution.aspx当然是aspx文件,而SaveClicked是静态WebMethod(C#)。
para只是一个带参数值的二维数组。
function ajaxCall(serverSideFunction, para)
{
ajaxReturn = "";
var dataPara = "{";
for (var i = 0; i < para.length; i++)
{
dataPara += "'" + para[i][0] + "':'" + para[i][1] + "'";
if (i < para.length - 1)
dataPara += ",";
}
dataPara += "}";
$.ajax({
type: "POST",
url: serverSideFunction,
data: dataPara,
async: false,
//&&JS01112013.2 Fix bug caused by IOS6 ajax caching
headers: {"cache-control": "no-cache"},
beforeSend: function (xhr)
{
xhr.setRequestHeader("Content-type", "application/json; charset=utf-8");
},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg, status)
{
ajaxReturn = msg.d;
},
error: function (xhr, msg, e)
{
alert(e); //Error Callback
alert('Ajax Callback Failed');
}
});
return ajaxReturn;
}
由于这仍然适用于大多数设备,我希望它只是简单地添加和IOS所需的标头到ajax调用。
任何想法?
感谢。