[英]Need help to write a Jquery $.ajax request equivalent to an XHR request
工作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.');
}
});
}
还要尝试将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.');
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.