1

我怀疑我遗漏了一些东西,但我一直在寻找解决方案或替代方案,但没有运气......

我有一个 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 文件的上下文之外运行,但在这种情况下,我希望看到一个未定义的函数错误.

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

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到我家庭网络上的日志服务器的代码(我也考虑过使用代理来完成这项工作!)。

4

0 回答 0