处理发送文件的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.');
}
});
}
更新 好的,所以我已经取得了一些进展,现在请求实际上已经点击了action方法, 但是输入流中没有数据,并且所有文件键数组都为null, 所以实际的文件数据似乎没有经过。请求标题很好。 (数据:文件)不同我认为是xhr.send(文件)?
现在使用这个:
var upload = function (file)
{
$.ajax
({
url: "/Admin/Upload",
headers: { catid: catid, pageid: pageid },
processData: false,
data: file,
success: function (data) {
alert('Load was performed.');
}
});
}
答案 0 :(得分:1)
尝试将contentType
设为false
,将type
设为'POST'
。
$.ajax({
url: "/Admin/Upload",
type: 'POST',
headers: { catid: catid, pageid: pageid },
processData: false,
contentType: false,
data: file,
success: function (data) {
alert('Load was performed.');
}
});