工作 XHR 请求发送一个设置了所有必需的请求标头的文件。
var upload = function (file) {
var xhr = new XMLHttpRequest();
xhr.open('POST', '/Admin/Upload', true);
xhr.setRequestHeader('X-Filename', file.name);
xhr.setRequestHeader('pageid', pageid);
xhr.setRequestHeader('catid', catid);
xhr.send(file);
}
尝试使以下工作(使用 jQuery 1.7.2)
var xhr = new XMLHttpRequest();
var upload = function (file, xhr) {
$.ajax
({
url: '/Admin/Upload',
beforeSend: function (xhr) {
xhr.setRequestHeader('X-Filename', file.name);
xhr.setRequestHeader('pageid', pageid);
xhr.setRequestHeader('catid', catid);
},
data: file,
success: function (data) {
alert('Load was performed.');
}
});
}
更新: 好的,所以我已经取得了一些进展,现在请求实际上命中了操作方法,但是输入流中没有数据并且所有文件键数组都是空的,所以实际的文件数据似乎没有通过. 请求标头通过正常。我认为 (data: file) 与 xhr.send(file) 不同吗?
现在使用这个:
var upload = function (file)
{
$.ajax
({
url: "/Admin/Upload",
headers: { catid: catid, pageid: pageid },
processData: false,
data: file,
success: function (data) {
alert('Load was performed.');
}
});
}