在XMLHttpRequest中获取SENT标头

时间:2011-09-27 03:47:22

标签: javascript google-chrome webkit xmlhttprequest

尝试从XHR对象获取Request标头,但没有运气,该对象的隐藏方法或属性是否会公开浏览器发送的标头?

我已经知道如何设置自定义请求标头并查看响应标头,我希望获得所有已发送的REQUEST标头的列表,浏览器创建的标头和我的自定义标头。

我正在使用webkit / chrome,不关心其他浏览器。

编辑:我不打算监控请求,我正在构建一个Web应用程序,我需要列出这些标题并在应用程序中显示它们,请不要告诉我有关小提琴,萤火虫和镀铬工具的信息,那不是我想要的。

3 个答案:

答案 0 :(得分:20)

XMLHttpRequest API中没有方法可以获取已发送的请求标头。有些方法只能获取响应标头,设置请求标头。

您必须让服务器回显标头,或使用像Wireshark这样的数据包嗅探器。

答案 1 :(得分:2)

尝试使用Fiddler Web Debugger。

http://www.fiddler2.com/fiddler2/

您可以捕获在任何浏览器中发送的请求,也可以检查请求标头,响应标头,甚至复制捕获已发送的请求并将其作为您自己的请求发送。

答案 2 :(得分:-1)

假设您正在使用jQuery,并且您正在寻找附加的任何内容,但可能没有发送所有标头,这可能有所帮助。不确定它是否符合您的确切需求,(因为浏览器倾向于添加自己的东西),但如果您需要首先获取自己的标题,这可行:

$.ajaxSetup({
    beforeSend: function (jqXHR, settings) {
        if(!(settings.headers && settings.headers.token)) {
            //no token header was set, so set the request header
            jqXHR.setRequestHeader('token', newtoken);
        }
    }
})