【问题标题】:How to view the last GET HTTP request in JavaScript如何在 JavaScript 中查看最后一个 GET HTTP 请求
【发布时间】:2010-09-26 18:26:43
【问题描述】:

如何在 JavaScript 中查看最后一个 GET http 请求?基本上我所追求的是我可以看到我的萤火虫控制台。当 XMLHttpRequests 显示在控制台中时,我看到一行类似于:

GET   http://www.domain.com/php/file.php?q0&c=1   200   OK   163ms

如何在 JavaScript 中查看该 URL?

编辑:为了清楚起见,我正在寻找 GET... 和 ...200 之间的 URL。我不关心其他任何事情。我不想要任何其他信息。

【问题讨论】:

    标签: javascript ajax http get xmlhttprequest


    【解决方案1】:

    您可能希望使用您的“跟踪”代码将XMLHttpRequest.prototype.open 修改为decorate。像这样的:

    var ajaxCalls = [];
    
    XMLHttpRequest.prototype._originalOpen = XMLHttpRequest.prototype.open;
    
    XMLHttpRequest.prototype.open = function(method, url, async, user, password) {
       ajaxCalls.push(url);
       this._originalOpen(method, url, async, user, password);
    }
    

    ajaxCalls 数组将填充您的 Ajax 请求的 URL。最后一个请求将在ajaxCalls[ajaxCalls.length - 1]

    请注意,如果您只想跟踪 GET 请求,则只需在 open() 方法中记录 method === 'GET' 时的 URL。

    【讨论】:

    • 谢谢,我最终在 PHP 中使用 $_SERVER['REQUEST_URI'] 然后将其传递给 JS,这是一种伪劣的解决方法。
    【解决方案2】:

    Daniel 的解决方案有效,但不适用于 IE8 及更低版本,因为 IE 具有不同数量的参数。

    试试这个:

    window.XMLHttpRequest.prototype._original_open = window.XMLHttpRequest.prototype.open;
    window.XMLHttpRequest.prototype.open = function() {
        ajaxCalls.push(arguments[1]);
        this._original_open.apply(this,arguments);
    };
    

    【讨论】:

      【解决方案3】:

      我最终在 PHP 中使用 $_SERVER['REQUEST_URI'] 解决方法,然后将其传递给 JavaScript。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-20
        • 2016-05-20
        • 2010-09-19
        • 2022-02-21
        • 2014-10-07
        相关资源
        最近更新 更多