
xmlhttprequest 请求发送数据中的 html 实体编码限制
在使用 xmlhttprequest 发起 post 请求时,通过 setrequestheader 方法设置 content-type 为 application/x-www-form-urlencoded 时,发送的数据会被编码成 url 编码格式。
在这种格式中,html 实体会被编码,使用 来分别表示 . 然而,为了确保数据能够正确发送,需要确保这些实体之间没有空格。
案例说明
立即学习“前端免费学习笔记(深入)”;
在给定的示例中,如果 之间有空格,则发送的数据类似于:
var data = "a=a&b=" + escape("zuojiankuohaophpcn row id='1'youjiankuohaophpcnzuojiankuohaophpcn /rowyoujiankuohaophpcn");在这种情况下,xmlhttprequest 会成功发送数据。
问题原因
然而,如果 之间没有空格,则发送的数据类似于:
var data = "A=a&B=" + escape("zuojiankuohaophpcnrow id='1'youjiankuohaophpcnzuojiankuohaophpcn/rowyoujiankuohaophpcn");这时,xmlhttprequest 会发送失败,提示危险字符。这是因为 url 编码格式需要 之间没有空格,否则会被视为无效的实体。
因此,在使用 xmlhttprequest 发送 html 实体时,需要确保这些实体之间没有空格。










