4

我最近开始在 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 所需的标头一样简单。

有任何想法吗?

谢谢。

4

0 回答 0