繁体   English   中英

无法更改xmlHttpRequest中的Content-Type

[英]Not able to change Content-Type in xmlHttpRequest

我试图在发送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后面应加上boundary: (your file boundary)但是因为您明确设置了它,所以它不存在

Content-type: multipart/form-data; boundary=----WebKitFormBoundaryrKBH6bAMJIdepLCI

如果您未设置Content-type那么XHR足够聪明,可以理解您正在发送文件,因此,我建议您不要设置它或设置boundary

(在这里查看fetch-多部分/表单数据POST中缺少边界

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM