AJAX:通过包含'&'的CGI传递字符串字符

时间:2011-05-29 04:57:54

标签: javascript python ajax cgi

我正在创建一个网站更新程序。我正在使用AJAX将字符串传递给CGI。

我有一个问题,如果我的字符串包含'&'由于CGI将参数/变量用“&”分隔,因此它们被错误地分开了字符

所以如果我寄这个:

http://mywebsite.com?user=blah&mystring=I_am_happy_&_sad

当我在python脚本中获取变量时,变量mystring将不正确:

input_data   = cgi.FieldStorage()
user         = input_data.getvalue( "user" ) # correctly = "blah"
mystring     = input_data.getvalue( "mystring" ) # incorectly = "I am happy "
# mystring should = "I am happy & sad"

现在我在Javascript中使用自己的post()函数发送AJAX请求,所以我不使用jQuery或其他任何东西。是否有一种简单的方法通过CGI发送包含'&'的字符串在它还是我需要编写自己的函数来解析字符串&替换'&'与其他东西争吵?

1 个答案:

答案 0 :(得分:4)

您需要对&符号进行URL编码:

http://mywebsite.com?user=blah&mystring=I_am_happy_%26_sad

为此,Javascript提供encodeURIComponent(),Python提供urllib.quote()