2017-05-11 4 views
0

コンテンツタイプがajaxコールの場合: xhr.setRequestHeader( 'Content-Type'、 'application/x-www-form -urlencoded ');アプリケーション/ x-www-form-urlencodedとしてコール後のコンテンツタイプでエスケープする方法

私は次のようなデータを持っています: "firstName = bob + builder";

データがサーバーに送信されると、ブラウザは、+スペースとデータで署名置き換えるには、firstNameのようになり:ボブビルダー

はそれを逃れる+署名する方法はありますか?私が知る限り、サーバー側で処理してスペースを+記号で置き換える以外の方法はありません。私が間違っている?

答えて

1

クライアント側でエンコードできるはずです。 Javascriptで:

encodeURIComponent("bob+builder"); //bob%2Bbuilder 

サーバーのサイドコードは、単純にデコードする必要があります。

+0

ありがとうございます。アプリケーション/ x-www-form-urlencodeの+とspace以外のすべてのものをエスケープする必要があります。 – Abhinav

+1

すべての文字列をエンコードする必要があります。そうすれば、アプリケーションが安全であることが保証されます。たとえば、ユーザーはfirstNameの値として "&something = else"を指定できます。エンコードされていない場合、 "else"という値を持つ "something"という追加変数としてサーバーによって解釈されます。 –

関連する問題