MDN关于XMLHttpRequest.send()的样例书写是否不准确,还是我理解错了?

在MDN上看到XMLHttpRequest.send()的一个样例,如下图:
1633939993(1).png
我理解这个是直接传递一个键值对,键是'form',值是字符串'data'。我按照这个理解试了,掉坑了,后端取不到任何东西???

查了其他介绍,都是要对键值对stringify序列化之后才能作为send()的参数。回头再看MDN,这里说参数可以是FormData对象:
1633940071(1).png

再看了FormData对象的介绍:
1633940103(1).png

这个FormData对象要先new出来再逐个append进去的,跟图一那么轻巧的一行键值对差远了。所以图一那行样例书写是否不准确,还是我哪个地方没理解到位?

阅读 2.4k
2 个回答

恭喜你发现文档错误!
英文版的文档里,这一小节是没有那个例子的:
图片.png

估计是哪个粗心的志愿者多加了点东西进去。

这些额外的例子只有中文版跟俄文版有,其他版本没有,有意思。

恭喜你发现了文档的一处错误。

按标准来说确实需要你手动序列化,只有 ArrayBufferViewBlobDocumentFormDataURLSearchParams 等少数这几个不需要手动序列化,其他的都得先自己变成 string

image.png

P.S. 你可以看英文版的文档,英文的是没有你这个错误的。同时它才是基金会官方维护的,其他语言的本地化版本都是靠社区维护,存在错误或滞后在所难免。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题