' @grant GM_xmlhttpRequest'导致脚本无法正常运行

时间:2015-03-19 03:57:41

标签: javascript greasemonkey gm-xmlhttprequest

我怀疑自己错过了一些东西,但是对于没有运气的解决方案或替代方案我看起来很高......

我有一个Greasemonkey脚本(我不想复制粘贴整个文件),当我添加行// @grant GM_xmlhttpRequest时,它不会运行。作为一个测试我向IITC添加了相同的一行(我系统中为数不多的一个关键的程序),它也无法加载。与Greasemonkey 2.3&失败3.0,运行Firefox 36.0.1。我在浏览器控制台中没有收到任何错误消息。

我的脚本在调用XMLHttpRequest open函数(this.addEventListener("readystatechange", function() {(function(open) {)和"截取"时添加一个监听器(XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {)。收到的数据并将其发送到我自己的本地网络服务器上进行记录。该脚本似乎贯穿.js文件中的代码,但是侦听器永远不会执行。我唯一能想到的是脚本中的代码按预期执行,但是当从侦听器运行时它在.js文件的上下文之外运行,但在这种情况下我希望看到一个函数未定义错误

这就是我提出要求的方式:

GM_xmlhttpRequest({
    method: "POST",
    url: "http://10.0.0.149/cgi-bin/test.py",
    data: "logdata=logthis",
    headers: {
        "Content-Type": "application/x-www-form-urlencoded"
    },
});

当取出@grant行时,脚本正常运行(并正确登录到控制台),除了我得到一个未定义的函数错误(正如预期的那样)。

console.log("LogData: " + this.responseText);

基本上我想要一行代码来替换我可以将responseText发送到家庭网络上的日志记录服务器的代码(我还考虑使用代理来完成工作!)。

0 个答案:

没有答案