IE URL传送值的有关问题
IE URL传送值的问题项目遇到一个问题,在页面输入很长的值,点击提交的时候页面没有反应。后来发现这个值是通
IE URL传送值的问题
项目遇到一个问题,在页面输入很长的值,点击提交的时候页面没有反应。后来发现这个值是通过URL传送到后台,而IE URL的最大长度只支持2083个字符。于是想把传递的方式改成POST,结果发现本来就是通过POST去传递的,但没有把该值放在参数里,而是直接拼在URL后面。
var XMLSender = g_GetXMLHTTPRequest();XMLSender.Open("POST",url,false);XMLSender.setRequestHeader("Content-Type","multipart/form-data");XMLSender.send(xml);
于是把该值放在xml里去传送,发现后台一直接收不到值。后来才发现请求头的设置不对,应该是application/x-www-form-urlencoded。
在网上查资料,这二者的区别。
application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。
multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分。
text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。
当想传递页面的值时,就使用前者;而当想发送大量文本数据或是二进制数据,比如文件上传时,就使用后者。