在Ajax POST中,在发送之前是否需要urlencode参数?

时间:2011-06-10 21:51:59

标签: javascript ajax 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 个答案:

答案 0 :(得分:2)

您需要在客户端上对它们进行编码,然后在服务器上对其进行解码。它将以未解码的方式工作,但它不易出错,编码/解码更安全。

发送不提供,因为发送的数据可能只是一个整数,因此调用UrlEncoding会引入不必要的开销。

答案 1 :(得分:0)

你应该对它们进行编码。发送不会为您执行此操作。