我使用抓取API从浏览器发送了一个post请求。这是我的代码:浏览器强制发送multipart/formdata
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)
);
我的表单只包含文本,电子邮件和密码输入类型。我期待表单数据与内容类型的应用程序/ x-www-form-urlencoded一起发送,但是它会作为multipart/formdata发送。
我已经尝试手动设置提取请求上的标题,并明确指定表单的encType属性(即使它应该默认为网址编码),但它不工作。
Chrome和Safari都会发生这种情况。我可以通过使用JSON轻松解决这个问题,但我真的想知道为什么会发生这种情况!
你可以发布你试图设置请求头的代码吗?另一件事是它在很多主流浏览器中都不被支持。所以它可能仍然是越野车。请参阅此表以了解兼容性:https://developer.mozilla.org/en/docs/Web/API/Fetch_API#Browser_compatibility –