ajax - 发送带有 Header 和 FormData 的 XMLHttpRequest

标签 ajax xmlhttprequest form-data request-headers

我正在尝试发送带有 header 的 XMLHttpRequest 并添加 FormData。有没有一种(优雅的)方式我可以做这样的事情:

var formData = new FormData();
formData.append("file", file);
var xhr = new XMLHttpRequest();

xhr.open("POST", "/ajax_gateway.php?mod=fileupload", true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded")
xhr.send(formData, "token=add");

最佳答案

发送 FormData 时不能指定 Content-Type header ,因为该 header 会自动设置为 "multipart/form-data"浏览器。你可以设置其他标题,试试这个:

var formData = new FormData();
formData.append("file", file);
formData.append("mod", "fileupload");
formData.append("token", "add");

var xhr = new XMLHttpRequest();
xhr.open("POST", "/ajax_gateway.php");
xhr.setRequestHeader("X-Answer", "42");
xhr.send(formData);

关于ajax - 发送带有 Header 和 FormData 的 XMLHttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23802133/

相关文章:

jquery - ColdFusion 结构和 Ajax

c# - 从 WebMethod 返回对象 (AJAX ASP.net)

javascript - 如何在没有 jQuery 的情况下用 JavaScript 打开 JSON 文件?

ajax - 没有指定 dataType 的自定义 ajaxTransport 函数不会触发(根本!)

javascript - 我怎样才能在 javascript 中从 FormData 获取数据?

jquery - 使用 jQuery.ajax 发送 multipart/formdata

javascript - cURL 到 xmlhttprequest

php - MySQL数据库中的未定义值

javascript - 在 chrome.runtime 消息系统中使用 promises

node.js - 使用 formData 获取 POST 在 Express JS 路由中为空