如何通过JQuery ajax函数发送查询字符串中的特殊字符?

时间:2011-02-05 05:59:39

标签: jquery django post escaping query-string

我需要将短消息发送到服务器。有时它们有特殊字符,如下例所示:

&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>

更新:我意识到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,  

所以我没有正确传递(urlencoded)吗?

更新:在用JQuery意识到问题之后,我能够通过用以下代码替换数据变量赋值来修复它:

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

3 个答案:

答案 0 :(得分:7)

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 }}

答案 1 :(得分:3)

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

我希望这有帮助!

答案 2 :(得分:0)

看看这个: http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

所以:成为%3A
BTW ......大多数现代浏览器都会自动执行此操作