在谷歌浏览器用户脚本跨来源XHR
-
20-09-2019 - |
题
有没有人曾在谷歌浏览器用户脚本执行跨起源XHR时任何运气?该请求都通过服务器(我可以看到他们在日志中),但是,在readystatechanged
事件从来没有发射。
扩展权限似乎并没有做的伎俩。既不是JSONP。
解决方案
铬的当前版本(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个字符的谷歌主页的写入控制台。)
其他提示
自Chrome 13,你可以,如果你提供的许可清单中的网站做内容脚本跨起源请求。
<德尔>在Chrome用户脚本是一个内容的脚本。内容脚本无法使跨域XHR时。如果你希望做跨域XHR时,它应该在扩展页面(背景下,弹出窗口,选项)来完成。
有关的详细信息: http://code.google.com/chrome/extensions/content_scripts.html http://code.google.com/chrome/extensions/xhr.html
不隶属于 StackOverflow