0

ねえ、私は次の ajax POST 呼び出しを持っています:

function callAjax(what2Do)
    {
        jQuery.ajax({
            url: "count.php?do=" + what2Do,
            type: "POST",
            data: "",
            cache: false,
            success: function(response, textStatus, jqXHR){
                alert('done!');
            },
            error: function(jqXHR, textStatus, errorThrown){
                alert(
                    "The following error occured: "+
                    textStatus, errorThrown
                );
            }
        });
    }

そして、私はエラーThe following error occurred: error when running the page in iE9 を取得し続けますが、他のすべてのブラウザーでは正常に動作します。

IEで動作しないために何が欠けているのでしょうか? リターンは単純なテキストです。

4

2 に答える 2

1

残念ながら、ほぼ同じ条件に対処するために、レガシーIEの動作でクラッシュコースを実行する必要がありました。私の場合、CORSを処理するために独自のXDomainRequestオブジェクトを使用するというIEの頑固な主張に帰着しました。いくつかの良いリンク:

標準に準拠することを拒否するブラウザーの例外を作成することは不快ですが、必要に応じて状況を説明するために、プロジェクトで次のようなものを使用します。

// This is necessary due to IE<10 having no support for CORS.
function fallbackXDR(callObj) {
    if (window.XDomainRequest) { 
        var xdrObj = new XDomainRequest();
        xdrObj.timeout = callObj.timeout;
        xdrObj.onload = function() {
            handleSuccess(xdrObj.responseText);
        };
        xdrObj.onerror = function() {
            handleError(xdrObj);
        };
        xdrObj.ontimeout = function() {
            callObj.xdrAttempts = callObj.xdrAttempts++ || 1;
            if (callObj.xdrAttempts < callObj.maxAttempts) {
                fallbackXDR(callObj);
            }
        };
        xdrObj.onprogress = function() {
            // Unfortunately this has to be included or it will not work in some cases.
        };

        // Use something other than $.param() to format the url if not using jQuery.
        var callStr = callObj ? '?'+$.param(callObj.urlVars) : '';
        xdrObj.open("get", callObj.url+callStr);
        xdrObj.send();
    } else {
        handleError("No XDomainRequest available.", callObj);
    }
}//fallbackXDR()
于 2013-01-07T00:28:15.393 に答える
0

これを試して:

function callAjax(what2Do)
{
    jQuery.ajax({
        url: "./count.php",
        type: "GET",
        data: { 'do': what2Do },
        cache: false,
        success: function(response, textStatus, jqXHR){
            alert('done!');
        },
        error: function(jqXHR, textStatus, errorThrown){
            alert(
                "The following error occured: "+
                textStatus, errorThrown
            );
        }
    });
}
于 2012-10-02T20:30:50.447 に答える