0

当我对我的代码进行更改以使其工作时,我应该写一篇日记,有时,我只是匆匆忙忙地把它投入工作而不知道确切原因。

出于某种原因,我确实将 xmlhttprequest 的 setRequestHeader 从“application/x-www-form-urlencoded; charset=UTF-8”更改为“application/octet-stream”,但后来,当尝试重用代码发送时通过 POST 到 php 的一些 vars,它没有用。在检查了一段时间后,我确实把它改回来了,vars 终于到达了它的目的地!

那么这些标头中的每一个是什么意思,它如何改变数据交换的方式呢?

4

2 回答 2

1

application/x-www-form-urlencoded是编码表单数据的标准方式的内容类型(也用于查询字符串)。

application/octet-stream是“日期的某些字节,没有特定格式”的内容类型(通常用于“我不知道这是什么”,有时用于“我不希望浏览器知道这是什么”什么时候Content-Disposition应该使用)。

标头不会改变数据的交换方式,它只是通知接收者数据的格式。

如果 PHP 被告知数据的格式是它不知道如何解析的,那么它就不会解析它并填充$_POST和朋友。

于 2013-08-30T14:02:02.287 回答
1

x-www-form-urlencoded意味着它转义了一些特殊字符并使整个数据包(表单)成为一个字符串。 octet-stream我从未见过这种格式,但我的原始猜测是它是一个 8 位数据块流。

于 2013-08-30T13:58:42.880 回答