2011-10-20 16 views
0

「=」を含むクエリ文字列のchrome開発ツールで完全なクエリパラメータを見ることができません。 「=」までしか表示されず、後に切り捨てられます。「=」が含まれていると、リクエストヘッダーに表示中にChrome開発ツールがフォームデータを切り捨てます。

ファイアバグは正しく表示します。 ここに示すajaxスニペットのfirebugとchrome devtoolsのスクリーンショットをご覧ください。

var qstring = "Hello=Hai"; 

    $.ajax({ 
     type: 'POST' 
     , url: "/cgi-bin/printenv.pl" 
     , data: "query=" + qstring 
     , dataType: 'xml' 
     , timeout: 10000 
     , success: function(jQuerySuccessData){ 
        } 
      }); 

Firebug shows the complete query parameter

Chrome dev tools doesn't show the complete query parameter

このために利用可能な任意の回避策はありますか?

おかげで、 ナガキラン

答えて

1

あなたは=が予約文字であるとして、クエリ文字列をURLENCODEする必要があります。これを行う最も簡単な方法は、javascriptのescape関数です。あなたは反対側でもurldecodeを確認してください。

+0

プロダクションサーバーのajaxリクエストを見ているようにコードを変更する権限がありません。はい "="は予約文字ですが、Firebugはそれを正しく処理します。コードを変更せずにこれを処理するいくつかの設定のようなchrome開発ツールの回避策はありますか? –

+0

私はそこにいるとは思わない。なぜ彼らはそのようなスイッチを実装する必要がありますか?あなたのContent-Typeは 'application/x-www-form-urlencoded'です。あなたはそのcontent-typeの文字列を提供していないので、デバッグツールは自由に何でもできます。 – Femaref

0

jQuery AjaxはデフォルトでcontentType: "application/x-www-form-urlencoded"を使用します。

   $.ajax({ 
        type: 'POST' 
        , url: (isCLI == false ? this.execUiQuery : this.execCli) 
        , data: qstring 
        , dataType: 'xml' 
        , contentType: 'text/plain' 
        , timeout: 10000 
        }); 

私は、この設定をオーバーライドし、「プレーンテキスト/」クロームデベロッパーツールではJavaScriptを使用して編集し、その完全なクエリ文字列を示すように設定しています。

関連する問題