В Аякс пост, мне нужно, чтобы функция urlencode параметров перед отправкой?


У меня есть длинный текст 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

2 ответа:

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

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

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