0

我正在尝试使用jQuery.ajaxPrefilter API 来制作 HTTP Ajax 拦截器。

这是jsFiddle

如您所见,我可以在 prefilter 函数中访问 jqXHR 对象,我什至可以 console.log 整个 jqXHR 对象,但是某些属性,例如 responseJSON 在直接指向它们时返回 undefined。这是我要修改的属性以完成 HTTP 拦截器。

关于为什么我无法访问 jqXHR.responseJSON 属性的任何想法?

这是在 jsFiddle 上运行的代码片段

var data = {
   'msg': 'hey!'
};

$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {

    console.log(jqXHR);   --> Returns the entire jqXHR object
    console.log(Object.isSealed(jqXHR));  --> return false
    console.log(Object.isFrozen(jqXHR));  --> return false
    console.log(jqXHR.responseJSON);      --> return undefined

});


$.ajax({
    type: 'POST',
    url: '/echo/json/',
    cache: false,
    data: {
        json: JSON.stringify(data),
        delay: 0
    }
}).done(function (data) {
    document.getElementById('msg').innerHTML = data.msg;
});

其余代码按预期工作,您可以在我的小提琴上查看。

4

0 回答 0