问题标签 [gm-xmlhttprequest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - GM跨域Ajax不工作
尝试使用greasemonkey脚本在客户网站上使用我们数据库中的数据预填充表单,但我不知道如何绕过相同的来源策略..
我正在使用 GM_xmlhttpRequest 甚至指定了@grant GM_xmlhttpRequest 但没有运气..
这是我的脚本我做错了什么?
javascript - GM_xmlhttpRequest POST 请求不能跨域工作
我在 Tampermonkey 中运行一个脚本,并尝试使用 GM_xmlhttpRequest 方法跨域发送 POST 请求。但是它对我不起作用。在控制台中,我只是得到正常的跨域错误:
XMLHttpRequest 无法加载 [domain1]。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此不允许 Origin [domain2] 访问。
据我了解,GM请求方法的重点在于它支持跨域,不像XMLHttpRequest()。所以我不明白为什么这不能正常工作。这是我正在做的事情的要点:
也许我错过了一些简单的东西或者我有错误的想法
编辑:我想我应该注意到上面的代码嵌套在一个不同的普通 XMLHttpRequest 中,以防它影响它。
javascript - 如何使用 GM_xmlhttpRequest 提交到基本的外部表单页面?
test
我为 Greasemonkey 创建了一个基本脚本,以便在 Stack Overflow 上搜索单词。
根据GM_xmlhttpRequest
文档,请求的参数应在data
参数中指示。
不幸的是,结果只是http://stackoverflow.com/search
像 ifdata
被忽略的页面。
请问我该如何解决这个问题?
javascript - 使用 GM_xmlhttpRequest 产生 XrayWrapper 拒绝访问
我正在尝试使用GM_xmlhttpRequest
. 它不断产生以下错误:
代码如下:
}
javascript - 如何使用 Greasemonkey 从远程域获取 cookie?
我正在编写一个 Greasemonkey (v2.3) 脚本,该脚本基本上对lema.rae.es/drae/srv/search提供的内容进行屏幕抓取,因为缺少任何类型的 API。
问题是,我想从另一个域的谷歌翻译中查询该 URL。为此,我可以毫无问题地使用 GM_xmlhttpRequest,但是对特定 URL 的 GET 请求(例如lema.rae.es/drae/srv/search?val=test)会生成一个带有隐藏表单的 HTML 页面,该表单在调用后会被 POST challenge()
javascript 函数——它计算某种在 POST 请求中传递的令牌。
显然,这是异步发生的,Greasemonkey 对此一无所知。通过反复试验,我意识到如果我的浏览器(Iceweasel 31.2.0)有一个用于 lema.drae.es 的 cookie,那么使用发出的 GET 请求GM_xmlhttpRequest
实际上返回了我想要的,这是定义的 HTML作为 URL 中的参数“val”传递的单词。但是,如果我删除 lema.drae.es 的所有 cookie,则 GET 请求会返回上述隐藏表单。
简而言之,我需要一种方法来从 Greasemonkey 中接收该 POST 请求的响应,并且我相信如果可以从服务器接收 cookie 并将其存储,那么我可以将其作为请求标头包含在进一步的请求中它应该可以按我的预期工作。或者它应该简单地存储在浏览器中,因此在我触发时会作为标题发送GM_xmlhttpRequest
。
我尝试了一种不同的解决方案来解决我的问题,即使用隐藏的 iframe,但是基于同源策略,浏览器阻止了此类 iframe 的创建,即使在将用户脚本配置为在两个域上运行之后也是如此。
希望我已经明确了我想要实现的目标,我希望有人能指出我正确的方向。
附带说明:如果有人可以解释该challenge()
函数的计算结果,我将不胜感激。我的假设是它生成的令牌被发送到服务器,服务器又使用它来生成 cookie,但这听起来太复杂了......
javascript - '@grant GM_xmlhttpRequest' 导致脚本无法运行 [正确]
我怀疑我遗漏了一些东西,但我一直在寻找解决方案或替代方案,但没有运气......
我有一个 Greasemonkey 脚本(我不想在这里复制粘贴整个内容),当我添加行时它不会运行// @grant GM_xmlhttpRequest
。作为测试,我将同一行添加到 IITC(我系统上为数不多的greasemonkey 脚本之一),但它也无法加载。Greasemonkey 2.3 和 3.0 失败,运行 Firefox 36.0.1。我在浏览器控制台中没有收到错误消息。
我的脚本this.addEventListener("readystatechange", function() {
在调用 XMLHttpRequest 打开函数 ( (function(open) {
, ) 时添加了一个侦听器 ( XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
) 并“拦截”接收到的数据并将其发送到本地网络上我自己的服务器以进行记录。该脚本确实似乎通过 .js 文件中的代码运行,但侦听器从不执行。我唯一能想到的是脚本中的代码按预期执行,但是当从侦听器运行时,它在 .js 文件的上下文之外运行,但在这种情况下,我希望看到一个未定义的函数错误.
这就是我提出请求的方式:
当该@grant
行被取出时,脚本正常运行(并正确记录到控制台),除了我得到一个函数未定义错误(如预期的那样)。
console.log("LogData: " + this.responseText);
本质上,我想要一行代码来替换那个我可以发送responseText
到我家庭网络上的日志服务器的代码(我也考虑过使用代理来完成这项工作!)。
greasemonkey - GM_xmlhttpRequest 中断脚本
我正在编写一个 Greasemonkey 脚本,该脚本将在用户访问页面时运行,收集页面上的一些信息,然后将该信息发送到另一个位置进行记录。但是,每当脚本调用 GM_xmlhttpRequest 时,它就会停止。例如:
输出只是“开始”。
我想我可能不得不在头部@grant GM_xmlhttpRequest 但是当我这样做时,根本没有输出!
更新:所以看来我确实想@grant GM_xmlhttpRequest 但是当我这样做时出现错误“Components.utils.getObjectPrincipal 不是函数”
json - 用户脚本 AJAX 请求给出 JSON-RPC 错误 -32700
这与问题非常相似,例如:Request to Random.org API with ZendFramework2。
但是,我认为我的问题出在我的数据请求中。
我得到的错误是:
finalUrl: "https://api.random.org/json-rpc/1/invoke"
readyState: 4
响应: "{"jsonrpc": "2.0", "error": {"code": -32700, "message “:“解析错误”,“数据”:null},“id”:null}”
responseHeaders:“日期:周三,2015 年 4 月 1 日 02:34:08 GMT?服务器:Apache/2.2.22 (Debian)?X -Powered-By: PHP/5.4.39-0+deb7u2?Content-Type: application/json; charset=utf-8?Access-Control-Allow-Origin:
*?Connection: Keep-Alive?Access-Control-Allow -Headers: Origin, X-Requested-With, Content-Type, Accept?Content-Length: 87?Keep-Alive: timeout=15, max=200?"
responseText: "{"jsonrpc": "2.0", "error": {"code": -32700, "message":
所以我相当肯定问题出在我的 JSON 请求中。我希望对 JSON-RPC 有更多经验的人可以帮助我指出正确的方向。
php - 使用 CORS 或 Web 代理的跨域 XMLHttpRequest
我的客户有一个非常具体的技术问题,他们要求我们为其寻找资源。这是非常具体的,所以我想知道是否有人可以引导我们朝着正确的方向前进(这样我就可以引导他们)。
他们正在尝试对与页面所在的域不同的域执行 XMLHttpRequest,以便与他们想要访问的第三方 BI 站点对话。当他们尝试访问其网站内的第三方 BI 站点时,它会中断并且不会启动该站点。浏览器会阻止它,因为出于安全原因,它通常允许来自同一来源的请求。他们被告知,当他们想要使用 CORS 进行跨域请求时,他们需要做一些不同的事情。或者他们应该使用 Web 代理?还是另一种方法?
在这两个领域都没有经验的情况下,他们将如何着手解决这个问题?
我们客户的网站主要是用 PHP/JavaScript 编写的,这对于他们已经尝试修复了大约两周的问题有很大帮助。
想法?
javascript - 循环中的同步 GM_xmlhttpRequest 仅在下一次迭代时返回结果
我GM_xmlhttpRequest
在这样的循环中运行:
它工作正常,但问题是预期结果向下移动了一行:
因此,正如我所见,在下一次循环迭代中调用onload
my 的同步,但使用上一次迭代的参数。我该如何解决?GM_xmlhttpRequest
url