4

最近、IOS デバイスでのみ jquery ajax 呼び出しで次のメッセージが表示されるようになりました。

エラー: NETWORK_ERR: XMLHttpRequest 例外 101

ajax 呼び出しは、すべてのデバイスで何ヶ月もうまく機能していましたが、私のクライアントの 1 人が先週このメッセージを受け取り始めました。

クロスドメインリクエストの問題であると読んだことがありますが、この場合は当てはまりません。

また、asyncをtrueに変更すると問題が解決することも読みましたが、できればそれを避けたいです。

ajax 呼び出しは次のとおりです。

serverSideFunction パラメーターは "AdvancedDistribution.aspx/SaveClicked" の形式です。AdvancedDistribution.aspx はもちろん aspx ファイルで、SaveClicked は静的な WebMethod (C#) です。

para は、パラメーター値を持つ単なる 2 次元配列です。

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