jQuery AJAX成功回调:我能看到发送的标题吗?

时间:2010-09-17 12:56:43

标签: ajax jquery

我正在通过jQuery的$ .ajax()方法发出一个AJAX请求。

我已使用以下方式指定了成功回调:

$.ajax({
    ...
    success: function(data, textStatus, xhr) {
        ...
    }
});

是否可以在回调中看到发送了哪些请求标头?例如,要检索特定的请求标头值?

编辑:要求是我没有“拥有”调用AJAX请求的代码,只有回调。我需要检查回调是否传递了特定标头。

e.g。

在他们的代码中是:

$.ajax({
    beforeSend: function(xhr) {
            xhr.setRequestHeader('A','B');
    },
    success: rogersCallbackMethod
});

然后在我的代码中我想说出这样的话:

function rogersCallbackMethod(data, textStatus, xhr) {
    if (xhr.getRequestHeader('A') == 'B') {
           ...
    }
}

4 个答案:

答案 0 :(得分:2)

萤火虫:

http://getfirebug.com/

如果您需要更详细的信息并且您正在使用PHP,您还可以使用FirePHP来调试ajax请求。

http://www.firephp.org/

答案 1 :(得分:1)

好吧,认为这是一个有效的问题,并在尝试自己解决问题时遇到了这个问题。

您可以使用this上下文。我正在使用url属性,但还有其他几个。

以下是解决我问题的一个例子。 (请注意,我可以控制AJAX调用代码,但不能控制服务器端代码,这是应该返回“bI​​Dold”的地方。)

$.post(url, obj, function(data) {
  var bIDold = this.url.match(/bID=(\d*)/)[1];
  var bIDnew = data.bID;

  if (bIDold != bIDnew) { ... }
});

你的意思是:

if (this.url.match(/A=([^&]*)/)[1] == 'B') { ...

答案 2 :(得分:0)

使用beforeSend方法查看XMLHttpRequest对象或对其进行修改。

答案 3 :(得分:0)

查看Fiddler。它适用于IE和Firefox。