В Ajax POST мне нужно urlencode параметров перед отправкой? - PullRequest
2 голосов
/ 11 июня 2011

У меня есть длинный JSON-текст, который я отправляю обратно на сервер через Ajax:

http.open("POST", url, true);
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", myVeryLongAJAXText.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {...}
http.send(myVeryLongAJAXText);

Нужно ли изменить последнюю строку на:

http.send(encodeURI(myVeryLongAJAXText));

об этом позаботится метод send?

Ответы [ 2 ]

2 голосов
/ 11 июня 2011

Вам необходимо кодировать их на клиенте и декодировать их на сервере. Он будет работать без декодирования, но менее подвержен ошибкам и безопаснее кодировать / декодировать.

Send не предлагает этого, потому что отправляемые данные могут быть просто одним целым числом, поэтому вызов UrlEncoding привел бы к ненужным накладным расходам.

0 голосов
/ 11 июня 2011

Вы должны их кодировать. Send не делает этого за вас.

...