我尝试在发送xhr数据之前设置Content-Type,如下所示
function uploadFile() {
var files = document.getElementById("file1") .files[0] ;
var formdata = new FormData();
formdata.append("Key", files);
ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", progressHandler, false);
ajax.addEventListener("load", completeHandler, false);
ajax.addEventListener("error", errorHandler, false);
ajax.addEventListener("abort", abortHandler, false);
ajax.open("POST", "./Save");
ajax.setRequestHeader('Content-Type','multipart/form-data;');
ajax.send(formdata);
}
通过更改内容类型,我无法在服务器端获取数据.
如果我删除了设置内容类型的代码,它的工作正常
我的服务器端代码如下
HttpContext.Current.Request.Files["Key"]
有什么建议吗?
最佳答案 问题是Content-type:multipart / form-data应该跟边界:(你的文件边界),但因为你明确地设置它不存在
内容类型:multipart / form-data;边界= —- WebKitFormBoundaryrKBH6bAMJIdepLCI
如果您没有设置Content-type,那么XHR足够聪明,可以理解您正在发送文件,所以我建议您不要设置它或设置边界