4

jQuery を使用して AJAX 呼び出しを実行しようとしましたが、データに特殊文字が含まれています{'data':'<p>test</p>'}。そもそもこのデータを渡せなかったようです。渡すだけでうまくいき{'data':'test'}ます。特殊文字が原因で、encodeURIComponent と JSON.stringify がここで失敗しました< > /

誰でもそれを手伝ってもらえますか?ありがとう。

$.ajax({
    type: "POST",
    url: "services.aspx",
    data: "data=" + encodeURIComponent(JSON.stringify(obj)),
    dataType: "text",
    error: function(xhr, textStatus, errorThrown)   {   
        alert("ERROR"); },
    success: function(data)
            {   

            }               
}); 

よろしく、

デビッド

4

4 に答える 4

3

これをfirebugで簡単にテストしましたが、実際には問題なく機能し、データが送信され、すべてが送信されたため、問題はajax呼び出し自体ではなく、投稿している機能に関連しているようです.

于 2009-09-21T09:21:51.507 に答える
1

この種の問題はデバッグが難しい場合があります。これは、非常に多くのコンポーネントがデータに触れており、データが意図したとおりに確実に処理されるように、それぞれ独自のスタイルの引用またはエスケープが必要になるためです。

最初に行うことは、データが適切に ajax 関数に到達していることを確認することです。ajax 関数の直前にconsole.logoralert()を使用して、データがどのように見えるかを確認します。データの取得元によっては、その時点で正しくない場合さえあります。

Firebug の [Net] パネルを使用して、サーバーに対して実際に行われたリクエストを確認し、ブラウザから送信されるデータを確認できます。サーバーにアクセスできる場合は、そこにある ajax 関数ハンドラー内でデバッグして、受信したデータを確認できる場合があります。

基本的に、データが始まった場所からデータが間違っている場所までの道のり全体を歩き、データが間違った方向に進んだポイントを見つける必要があります。

于 2009-09-21T10:00:23.613 に答える
-1

objinencodeURIComponent(JSON.stringify(obj))が文字列または json オブジェクトであると仮定すると、スクリプトは機能するはずです。

obj = {'data':'<p>test</p>'};それが必要ない場合は、単にencodeURIComponent行うことができますdata: JSON.stringify(obj)

コードにこれ以上のものはありますか?投稿できればもっと役立つかもしれません。

于 2010-04-21T13:45:10.543 に答える
-2

私はasp開発者ではありませんが、jquery ajaxを介してhtml投稿を処理しているときに同じ問題が発生しました。以前は次のように投稿していました。

var data = 'id='+ escape(currid) +'&html='+ escape(div_html);

$.post("http://...", data, ...);

これがあなたの助けになることを願っています。

于 2010-04-26T05:54:34.277 に答える