【发布时间】:2016-07-22 14:21:27
【问题描述】:
我正在使用 fetch API 从浏览器发送一个发布请求。这是我的代码:
const headers = new Headers();
headers.append("Content-Type", "application/x-www-form-urlencoded");
fetch('/signup', {
method: 'POST',
body: new FormData(document.querySelector('form')),
credentials: 'same-origin',
headers
}).then(
response => response.text()
).then(
text => console.log(text)
);
我的表单仅包含文本、电子邮件和密码输入类型。我期待表单数据与内容类型 application/x-www-form-urlencoded 一起发送,但是它作为 multipart/formdata 发送。
我已尝试手动设置获取请求的标头并明确指定表单的 encType 属性(即使默认情况下它应该是 url 编码的),但它不起作用。
Chrome 和 Safari 都会出现这种情况。我可以通过使用 JSON 轻松解决这个问题,但我真的很想知道为什么会这样!
【问题讨论】:
-
你能贴出你试图设置请求头的代码吗?另一件事是许多主要浏览器尚不支持它。所以它可能仍然是错误的。请参阅此表以了解兼容性:developer.mozilla.org/en/docs/Web/API/…
标签: javascript html forms