在谷歌浏览器用户脚本跨来源XHR在谷歌浏览器用户脚本跨来源XHR(Cross-origin XHR

2019-05-12 02:24发布

有没有人曾在谷歌浏览器用户脚本执行跨起源XHR时任何运气? 该请求都通过服务器(我可以看到他们在日志中),但是,在readystatechanged事件从来没有发射。

扩展权限似乎并没有做的伎俩。 无论是JSONP。

Answer 1:

Chrome浏览器的最新版本(13.0.781或更高版本)现在支持大多数或所有的GM_xmlhttpRequest() 文件的功能- 包括跨域请求
参见问题18857:在内容脚本支持跨站点XMLHttpRequest的 。

所以这个脚本现在工作完全没有在Chrome(和Firefox,当然):

// ==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)
                                );
                }
} );


(安装该脚本,然后浏览任何网页SO该脚本将写的第80个字符的谷歌主页的控制台。)



Answer 2:

自Chrome 13,你可以,如果你提供的许可清单中的网站做内容脚本跨起源请求。

在Chrome用户脚本内容脚本。 内容脚本无法使跨域XHR时。 如果你希望做跨域XHR时,它应该在扩展页面(背景下,弹出窗口,选项)来完成。

欲了解更多信息: http://code.google.com/chrome/extensions/content_scripts.html http://code.google.com/chrome/extensions/xhr.html



文章来源: Cross-origin XHR from a user script in Google Chrome