AJAX: передача строки через CGI, которая содержит символ '&' - PullRequest
1 голос
/ 29 мая 2011

Я создаю обновление сайта.Я передаю строки через CGI, используя AJAX.

У меня проблема в том, что если мои строки содержат символ '&', они неправильно разделены, потому что 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"

Теперь я использую свою собственную функцию post () в Javascript для отправки запросов AJAX, поэтому я не использую jQuery или что-либо еще.Есть ли простой способ отправки строк через CGI, которые содержат '&', или мне нужно написать собственную функцию для анализа строки и замены символов '&' чем-то другим?

1 Ответ

4 голосов
/ 29 мая 2011

Вам необходимо URL-кодирование символа амперсанда:

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

Для этого Javascript предоставляет encodeURIComponent () , а Python предоставляет urllib.quote () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...