ajax请求中URL和参数的编码问题
16lz
2021-01-22
1、html的charset标签:
charset 属性是 HTML5 中的新属性,且替换了:<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
仍然允许使用 http-equiv 属性来规定字符集,但是使用新方法可以减少代码量。
HTML5使用“<meta charset="UTF-8">”来表示页面使用UTF-8编码
HTML中使用“<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">”来表示页面使用UTF-8编码
2、Ajax请求:URL、POST请求表单参数、URL中GET请求参数的编码
经自己测试发现: 在IE11、Firefox(48.0.2)、chrome(45.0.2454.101 m)测试,上面的编码取决于网页的编码类型(也就是charset标签中所设置的编码,如果没有设置charset编码,那么默认为系统的编码类型) 自己查阅了资料测试结果和网上资料有些不一样,有可能是浏览器的版本导致的。 资料上说:ajax请求中URL编码与浏览器类型有关(网上文章);post请求参数由于是在http请求中的body部分,所以其参数编码取决于网页的编码(书中)。两者说法产生了冲突,可能与作者所处的时间点不一致,导致浏览器的版本不一致,所以会有冲突。 网上有文章建议:使用javaScript内置的函数对URL重新编码
参考资料:
《深入分析JavaWeb技术内幕》
关于URL编码(针对URL含有中文的参数---http://www.cnblogs.com/kenshinobiy/p/4377365.html
更多相关文章
- 在javascript中调用带有双参数()的函数
- 在jQuery中使用css transform属性
- javascript的offset、client、scroll使用方法,相关属性解释原理
- 如何将javascript set style属性返回到CSS默认值
- 对象的属性也要加引号吗
- javascript中的属性类型
- 使用gulp-spritesmith属性生成:悬浮规则,而不是类选择器
- 我可以在JavaScript中从不同的页面传递参数吗?
- 从单击使用属性作为变量进行AJAX调用。