View AJAX response content in Chrome developer tools?

后端 未结 9 531
忘掉有多难
忘掉有多难 2020-12-02 17:04

Traditionally I use FireBug to debug my AJAX requests. It lets you examine both the contents of your request as well as the response that was sent back from the server. (it

相关标签:
9条回答
  • 2020-12-02 17:06

    What you might be seeing is only the OPTIONS request of a CORS request being treated as an XHR request by Google Chrome inspector. So if you filter by XHR requests, you might only see the initial OPTIONS preflight request, whose response has no content, and get confused because it seems like Chrome is refusing to show the response. Disable the filter and go to the next request for that same URL, which will most likely be the "real" request corresponding to that CORS preflight request.

    0 讨论(0)
  • 2020-12-02 17:10

    Solution for PHP:

    The reason could be that the requested-url (php page) has errors. But as many hostings has disabled the error-output, you need to enable that in requested .php file (put somewhere in the top of file):

    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    

    After that, you will see the response there.


    To hook manually:

    (function() {
        var origOpen = XMLHttpRequest.prototype.open;
        XMLHttpRequest.prototype.open = function() {
            this.addEventListener('load', function() {
                console.log(this);
            });
            origOpen.apply(this, arguments);
        };
    })();
    
    0 讨论(0)
  • 2020-12-02 17:15

    The reason can be not only in chrome, but also preview can be stopped even by JS code. For example, there is some plugin for Vue.js called vue-resorcese, and it had this issue: Chrome, no response data after OPTIONS request? I lived with this issue several months until found that question today. Current question never gave an answer, so I now share it here.

    Details: this plugin had next code that creates XHR object:

    if ('responseType' in xhr && SUPPORTS_BLOB) {
           xhr.responseType = 'blob';
    }
    

    This code was ok and preview worked but until some chrome update. Today when I commented this away, preview appeared again! So first, try check your XHR wrapper, may be it has something like this.

    It was the rare issue because it was reproduced only with CORS preflight. BTW right clicking on the OPTIONS XHR and REPLAY also showed preview.

    there you have it

    0 讨论(0)
  • 2020-12-02 17:16

    I had empty response because the script was sending empty data by

    die();
    
    0 讨论(0)
  • 2020-12-02 17:21

    The content of ajax responses is not visible yet if the request is generated by a plugin. There is some chance that this problem will be fixed soon.

    0 讨论(0)
  • 2020-12-02 17:23

    If you are on a dev channel of Google Chrome:

    http://www.chromium.org/getting-involved/dev-channel

    ...you should be able to right-click in the Developer Tools console, and click "Enable XMLHttpRequest logging".

    Once it is enabled, you will see the XHR requests in the console, and will be able to click on them to take you to the resources panel, where you'll be able to see the content of an XHR.

    0 讨论(0)
提交回复
热议问题