javascript - 如何使用 GM_xmlhttpRequest 提交到基本的外部表单页面?

标签 javascript forms greasemonkey gm-xmlhttprequest

我为 Greasemonkey 创建了一个基本脚本,以便在 Stack Overflow 上搜索单词 test

根据GM_xmlhttpRequest documentation ,请求的参数应在 data 参数中指示。

// ==UserScript==
// @name        Test Search SO
// @namespace   Test Search SO
// @description Test Search SO
// @include     http://YOUR_SERVER.COM/YOUR_PATH/*
// @version     1
// @grant       GM_xmlhttpRequest
// ==/UserScript==

alert("Ready?");

GM_xmlhttpRequest({
  url: "http://stackoverflow.com/search",
  method: "GET",
  data: "q=test",
  onload: function(response) {
    document.getElementsByTagName("html")[0].innerHTML = response.responseText;
    alert("Done.");
  }
});

不幸的是,结果只是页面http://stackoverflow.com/search,就像data被忽略一样。

请问我该如何解决这个问题?

最佳答案

要将数据发送到表单页面,通常必须使用 POST
要使用 POST,您通常还必须确保编码符合页面的预期。

这有效:

GM_xmlhttpRequest ( {
    url:        "http://stackoverflow.com/search",
    method:     "POST",
    data:       "q=" + encodeURIComponent ("test"),
    headers:    {
        "Content-Type": "application/x-www-form-urlencoded"
    },
    onload:     function (response) {
        document.getElementsByTagName ("html")[0].innerHTML = response.responseText;
        alert ("Done.");
    }
} );

(不要忘记对参数进行 URI 编码。)

<小时/>

或者,许多此类页面将接受 GET 请求,但随后您将数据作为 URL 参数发送:

GM_xmlhttpRequest ( {
    url:        "http://stackoverflow.com/search?q=" + encodeURIComponent ("test"),
    method:     "GET",
    onload:     function (response) {
        document.getElementsByTagName ("html")[0].innerHTML = response.responseText;
        alert ("Done.");
    }
} );

关于javascript - 如何使用 GM_xmlhttpRequest 提交到基本的外部表单页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26365365/

相关文章:

javascript - 使用 highchart 设置符号标记

javascript - 在 Knockout View 模型中调用 jQuery 插件是有效模式吗?

php - PHP和HTML表单使用用户输入来搜索数据库

html - 如何将表单选择上的下拉按钮移动到左侧?

javascript - 代码作为 Opera UserJS 运行,但在 Chrome 和 Greasemonkey 用户脚本中给出 "undefined"错误

javascript - 如何在用户脚本中获得鼠标悬停图像效果?

javascript - 为什么在使用 controllerAs 嵌套指令时父作用域会中断

javascript - JSON 从 url 到 PHP 表

c# - 如何向我的 C# Web 应用程序添加文件上传按钮?

javascript - GreaseMonkey脚本重写图片链接