我注意到对于我的 POST 请求,我必须使用:
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
否则会有错误。
但是,当发送一个 FormData 对象作为我唯一的数据时,我没有设置 requestHeaders 并且一切正常。
我发现这很奇怪,一个需要标题而一个不需要。只是想验证一下。
MDN文档指出
// xhr.setRequestHeader("Content-type", "multipart/form-data");
被隐式使用。IE 实际上并没有设置此标头,因为它默认用于表单数据。
设置它实际上会导致错误。这是正确的,根据文档设置它会破坏你的代码。
从文档:
如果编码类型设置为“multipart/form-data”,它使用与表单相同的格式。
是否有任何正式文档描述如何使用此 FormData,即如何正确使用 ajax。
我已经通过反复试验让它工作了,但我想要一个可靠的参考,所以我对我的代码更有信心。