首页 > 文章列表 > XMLHttpRequest 发送数据中的 HTML 实体编码:空格会导致发送失败?

XMLHttpRequest 发送数据中的 HTML 实体编码:空格会导致发送失败?

483 2024-11-08

XMLHttpRequest 发送数据中的 HTML 实体编码:空格会导致发送失败?

xmlhttprequest 请求发送数据中的 html 实体编码限制

在使用 xmlhttprequest 发起 post 请求时,通过 setrequestheader 方法设置 content-type 为 application/x-www-form-urlencoded 时,发送的数据会被编码成 url 编码格式。

在这种格式中,html 实体会被编码,使用 < 和 > 来分别表示 < 和 >. 然而,为了确保数据能够正确发送,需要确保这些实体之间没有空格。

案例说明

在给定的示例中,如果 < 和 > 之间有空格,则发送的数据类似于:

var data = "a=a&b=" + escape("&lt; row id='1'&gt;&lt; /row&gt;");

在这种情况下,xmlhttprequest 会成功发送数据。

问题原因

然而,如果 < 和 > 之间没有空格,则发送的数据类似于:

var data = "A=a&B=" + escape("&lt;row id='1'&gt;&lt;/row&gt;");

这时,xmlhttprequest 会发送失败,提示危险字符。这是因为 url 编码格式需要 < 和 > 之间没有空格,否则会被视为无效的实体。

因此,在使用 xmlhttprequest 发送 html 实体时,需要确保这些实体之间没有空格。

来源:1730453246