Cross-origin XHR from a user script in Google Chrome

后端 未结 2 871
梦毁少年i
梦毁少年i 2020-12-06 06:03

Has anybody had any luck performing cross origin XHRs from a user script in Google Chrome? The requests go through to the server (I can see them in the logs) but, the

相关标签:
2条回答
  • 2020-12-06 06:14

    Current versions of Chrome (13.0.781 or later) now support most or all of the GM_xmlhttpRequest()Doc functionality -- including cross-domain requests.
    See Issue 18857: Support cross-site XMLHttpRequest in content scripts.

    So this script works perfectly fine now on Chrome (and Firefox, of course):

    // ==UserScript==
    // @name            _Cross domain (XSS) GM_xmlhttpRequest, Chrome too
    // @include         http://stackoverflow.com/*
    // @grant           GM_xmlhttpRequest
    // ==/UserScript==
    
    GM_xmlhttpRequest ( {
        method:     "GET",
        url:        "http://www.google.com/",
        onload:     function (response) {
                        console.log (   response.status,
                                        response.responseText.substring (0, 80)
                                    );
                    }
    } );
    


    (Install that script, then browse any SO page. The script will write the first 80 characters of the Google home page to the console.)

    0 讨论(0)
  • 2020-12-06 06:14

    As of Chrome 13, you can do cross origin requests in Content Scripts if you included the permission to the website in the manifest.

    A user script in Chrome is a content script. Content scripts cannot make cross-origin XHRs. If you wish to do cross-origin XHRs, it should be done in the extension pages (background, popup, options).

    For more info: http://code.google.com/chrome/extensions/content_scripts.html http://code.google.com/chrome/extensions/xhr.html

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