2011-02-05 5 views
4

私はサーバーに短いメッセージをPOSTする必要があります。場合によっては、次のような特殊文字が表示されることがあります。JQuery ajax関数を介して送信されたクエリ文字列内の特殊文字をエスケープする方法はありますか?

&message=Joining a game of Commands & Colors: Ancients. 

クエリ文字列から特殊文字をエスケープするにはどうすればよいですか?

私はDjangoを使用しています。ここで私はエンコードする必要があるフィールドです:

<textarea class="text-area" id="message" name="message" rows="3" cols="30"> 
    Joining a game of {{ game.name }}. 
</textarea> 

UPDATE:私は、POSTは、jQueryのAJAX機能を通過していることを実現:

$("#checkin-button").click(function() { 
      var mid = $("input#mid").val(); 
      var message = $("textarea#message").val(); 
      var facebook = $('input#facebook').is(':checked'); 
      var name = $("input#name").val(); 
      var bgg_id = $("input#bgg-id").val(); 
      var thumbnail = $("input#thumbnail").val(); 
      var dataString = 'mid='+mid+'&message='+message+'&facebook='+facebook+'&name='+name+'&bgg_id='+bgg_id+'&thumbnail='+thumbnail; 
    $.ajax({ 
     type: "POST", 
     url: "/game-checkin", 
     data: dataString, 

だから私は右に正しく(URLエンコード)することを渡していませんよ?

UPDATE:私はこのことができます願ってい

data: {"mid": mid, "message": message, "facebook": facebook, 
"name": name, "bgg_id": bgg_id, "thumbnail": thumbnail} 

答えて

6

Python

>>> urllib.urlencode({'message': 'Joining a game of Commands & Colors: Ancients.'}) 
'message=Joining+a+game+of+Commands+%26+Colors%3A+Ancients.' 

Django

message={{ message|urlencode }} 
+0

おかげなので、どのように私は上記の私のフィールドに値をエンコードするのでしょうか?テンプレートコードで投稿を更新しました。 –

+0

ブラウザはすでに送信されたフォームの入力をエンコードします。 –

+0

いいえ、そうではありません。 Firebugによると、それは生の文字列であり、サーバーからそれを印刷すると、「コマンドのゲームに参加する」と切り捨てられます。 –

3
import urllib; 
urllib.urlencode("string"); 

:問題を実現した後、jQueryを使っていた、私はデータ変数の割り当てを置き換えることによって、それを修正することができました!

関連する問題