我正在尝试在标题中正确设置边界,同时使用FormData发布XmlHttpRequest:
xhr.open("POST",url);
xhr.setRequestHeader("Content-type","multipart/form-data; boundary=...");
var formData = new FormData();
formData.append("filename", inputId.files[0]);
formData.append(...);
xhr.send(formData);
如何在此处获取请求标头中设置的边界。我看到请求被设置,边界以某种方式在请求中创建。但服务器不知道如何解释它。
答案 0 :(得分:21)
ES方法
只需不要手动设置Content-Type标题,浏览器就会自动设置“multipart / form-data; boundary = ...”值。
jQuery方法
如果您使用的是jQuery,请将contentType选项设置为false:
$.ajax({
url: url,
type: 'POST',
data: formData,
processData: false,
contentType: false
});
答案 1 :(得分:2)
试着看看这个,How to send multipart/form-data form content by ajax (no jquery)?我正在尝试使用PHP作为接收者来处理这个脚本,对于警告的混合结果有一些问题,我认为我的问题是我已经破解了脚本结束太多,不再运作。
至于其他海报的评论“如果你正在使用JQuery”,那么我唯一要对该评论说的是,它对没有在JQuery工作的人没有帮助,而JQ并不是全部并结束所有脚本。