我最近开始在 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;
}
由于这仍然适用于大多数设备,我希望它就像在 ajax 调用中添加和 IOS 所需的标头一样简单。
有任何想法吗?
谢谢。