-1

phpスクリプトにjqueryajax投稿を作成しています。これはChrome19とSafari5で機能します。

$.ajax({
    type:'POST',
    async:true,
    url: '/site/phpscript.php',
    data: {
            xyArray: xyArray,
            xmlDataString:xmlDataString,
            id:id
        },
    success: function(results){ alert('success'); },
    error: function()
    {
                alert('error');
    }
});

私がこれをテストすると、これはクロームとサファリで動作します。しかし、IEとFirefoxではありません。ただし、xmlDataStringのサイズが小さい場合は機能します。

jQuery ajaxを使用して投稿する場合のFirefoxのサイズ制限はありますか?

4

1 に答える 1

0

編集:はい、Firefoxには4096文字の制限があります。

ここでいくつかの回避策:http: //forums.ext.net/showthread.php?8208-Firefox-Ajax-limit-of-4096

編集:その記事から:

Webサービスのajax呼び出しからの「結果」を処理するJS関数を作成しました...FFとIEの両方で機能します...

代わりにそれを呼んでください...

var strResult=Ext.DomQuery.selectValue("string", result, "");
function getWebSvcString(result)

{

var strResult="";

var stringElement = result.getElementsByTagName("string")[0];

if (stringElement.text!=null && stringElement!=undefined){

strResult=stringElement.text;

// alert("IE: "+strResult.length);

}


else if (stringElement.textContent!=null && stringElement.textContent!=undefined)

{

strResult=stringElement.textContent;

// alert("FF: "+strResult.length);


}

return strResult;

}

また、デフォルトであるため、投稿は省略します。コードがすっきりします。また、Ajax呼び出しのエラーイベントの応答にエラーメッセージを追加します。それも手がかりになるかもしれません。

$.ajax({
    async:true,
    url: '/site/phpscript.php',
    data: {
            xyArray: xyArray,
            xmlDataString:xmlDataString,
            id:id
        },
    success: function(results){ alert('success'); },
    error: function(xhr, ajaxOptions, thrownError){
                    alert(xhr.status);
                    alert(thrownError);

    }
});

私の経験では、ブラウザーがAjax呼び出しで問題を抱えているのは、データの形式が正しくないためです。バリデーターを介して投稿と応答を実行できますか?おそらく、文字が欠落しているか、どこかに余分なコンマが存在するか、終了タグが欠落しています。

于 2012-06-08T01:22:41.000 に答える