获取 jquery $.ajax 请求使用的设置
Get settings used by jquery $.ajax request
我使用$.ajax
处理许多请求,每个请求都有传递给函数的不同设置和值。
我需要检查这些设置是否正确合并到$.ajax
设置中。
var options = {
endpoint: '/path/page'
method : "POST",
mode: 'abort',
data : { value : $(this).val() },
headers : { 'X-Key' : 'value' }
}
$.ajax( $.extend(true, {
url: endpoint,
type: 'GET',
cache: true,
dataType: 'json',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
headers : {
'X-Same-Domain':'1',
},
async: true,
data: data,
timeout: 5000,
}, options) )
如何在控制台中查看 $.ajax 请求在成功或失败时使用的那些设置?
这个问题很老了,但从现在开始,它可以以低复杂性帮助那些有需要的人。可以使用 .ajaxSend 中的设置来装饰 jqxhr,这样它将被传递到 jqxhr 发送后所在的所有流中。
$(document).ajaxSend(function (event, jqxhr, settings) {
jqxhr.settings = settings;
});
jQuery似乎不支持这一点,但你可以自己实现:
function ajax(options) {
var defer = $.Deferred();
$.ajax(options)
.done(function(data, textStatus, jqXHR) {
defer.resolve(data, textStatus, jqXHR, options);
})
.fail(function(jqXHR, textStatus, errorThrown) {
defer.reject(jqXHR, textStatus, errorThrown, options);
});
return defer.promise();
}
用法
var options = {
endpoint: '/path/page'
method : "POST",
mode: 'abort',
data : { value : $(this).val() },
headers : { 'X-Key' : 'value' }
};
ajax($.extend(true, {
url: endpoint,
type: 'GET',
cache: true,
dataType: 'json',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
headers : {
'X-Same-Domain':'1',
},
async: true,
data: data,
timeout: 5000,
}, options)).done(function(data, textStatus, jqXHR, ajaxOptions) {
console.log("done", ajaxOptions);
}).fail(function(jqXHR, textStatus, errorThrown, ajaxOptions) {
console.log("fail", ajaxOptions);
});
通常,你会做这样的事情:
var defaults = {...};
...
var options = {...};
var ajaxSettings = $.extend(true, {}, defaults, options);
console.log(ajaxSettings);
$.ajax(ajaxSettings).then(function(result) {
// success handler
// `ajaxSettings` is still in scope here
}, function(error) {
// error handler
// `ajaxSettings` is still in scope here
});
相关文章:
- 哪个 JavaScript 库在请求对象上设置 _parsedUrl 属性
- 如何设置$.ajax请求的超时,并在超时时间过长时进行重做
- 在不发出请求的情况下设置img src
- 导轨 4.宝石will_paginate.更改在 ajax 请求上设置的分页链接
- 在express.js中为每个请求设置全局res.local变量
- Ajax请求返回模块设置数据
- AJAX 请求没有在我的 React 组件中设置 this.state.data
- 使用Javascript重定向并设置请求属性
- easyUI是否支持设置请求头
- 通过javascript编程设置请求[quot;__EVENTTARGET"]
- 如何在firefox-sdk中设置请求超时设置
- 尝试设置请求指针锁()时似乎有问题
- 在 DOM 元素发起的请求上设置请求标头
- 页面重定向并设置请求自定义请求标头
- 如何使用javascript刷新页面并设置请求头
- 如何为浏览器GET设置请求头
- 在ajax中设置请求头
- 我如何设置请求?会话
- 在Meteor.js应用中设置请求限制
- 设置请求头jQuery Ajax