需要帮助编写等效于 XHR 请求的 Jquery $.ajax 请求
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.');
}
});
}
更新:好的,所以我已经进步了一点,请求现在实际上命中了操作方法,但是,输入流中没有数据,并且所有文件键数组均为空,因此,实际的文件数据似乎没有通过。请求标头正常。(数据:文件)与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.');
}
});
}
尝试将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.');
}
});
相关文章:
- 是否可以缓存可下载的文件,并在XHR和非XHR请求之间共享该缓存
- 通过XHR请求将MYSQL数组从PHP返回到Javascript
- 正在发送请求中包含数组的qx.io.request.Xhr请求
- XHR请求的CSRF预防
- onReadyStateChange未在XHR请求的IE中激发
- 终止所有正在进行的XHR请求
- Web 工作线程中的同步 XHR 请求是否仍会锁定浏览器
- 在使用量角器进行e2e测试时记录xhr请求
- Angular在不触发摘要的情况下执行XHR请求
- 如果我使用xhr请求,那么ajaxComplete的等价物是什么
- 总是在XHR请求中附加一些内容
- 同时发出的最大 xhr 请求量
- Dojo 两个 XHR 请求和回调函数仅在两者完成时触发
- 我可以/如何显式终止长时间运行的 xhr 请求
- 服务工作线程是否可以响应同步 XHR 请求
- 如何将 xhr 请求转换为角度$http请求
- 如何捕获任何 XHR 请求
- 如何显示 XHR 请求的加载图标
- 发送 XHR 请求而不接收任何数据
- 不能返回“结果”xhr.然后(& # 39;dojo /请求/ xhr # 39;)