【发布时间】:2018-09-05 09:46:05
【问题描述】:
我尝试在发送 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"]
有什么建议吗?
【问题讨论】:
-
尝试删除
'multipart/form-data;'中的分号 -
嗨@Dummy,我已经尝试过了,但它不起作用。它仅在删除 Content-Type 更改代码时有效。
-
您的 HTML
<form>是否像<form enctype="multipart/form-data" method="post"一样包含enctype?您是否也可以尝试转义/尝试:ajax.setRequestHeader('Content-Type','multipart\/form-data;'); -
嗨@caramba,我没有在表单中使用 with。我已经尝试过你的建议,但它不起作用
标签: javascript