javascript - 使用 Greasemonkey 进行跨域发帖?

标签 javascript post greasemonkey

我需要在后台用 Greasemonkey 发帖。我尝试动态创建一个 iframe 并发布到它,但它不起作用:

function crossDomainPost() {
    // Add the iframe with a unique name
    var iframe = document.createElement("iframe");
    var uniqueString = "CHANGE_THIS_TO_SOME_UNIQUE_STRING";
    document.body.appendChild(iframe);
    iframe.style.display = "none";
    iframe.contentWindow.name = uniqueString;

    // construct a form with hidden inputs, targeting the iframe
    var form = document.createElement("form");
    form.target = uniqueString;
    form.action = "http://INSERT_YOUR_URL_HERE";
    form.method = "POST";

    // repeat for each parameter
    var input = document.createElement("input");
    input.type = "hidden";
    input.name = "INSERT_YOUR_PARAMETER_NAME_HERE";
    input.value = "INSERT_YOUR_PARAMETER_VALUE_HERE";
    form.appendChild(input);

    document.body.appendChild(form);
    form.submit();
}


有人说即使我们发帖,我们也拿不到值(value)观。如果我们不能,只需让用户访问该页面就足够了。它可以在 JS、jQuery、AJAX 帖子中。不仅仅是 form-iframe 技巧。

最佳答案

Greasemonkey 内置了对跨域发帖的支持。您不需要使用 jsonp,也不需要使用 iframe。使用the GM_xmlhttpRequest function .

您无需尝试构建表单并发布它,而是直接发送表单编码的数据:

var formData1   = "1 INSERT_YOUR_PARAMETER_VALUE_HERE";
var formData2   = "2 INSERT_YOUR_PARAMETER_VALUE_HERE";
var formData3   = "3 INSERT_YOUR_PARAMETER_VALUE_HERE";
// etc.

GM_xmlhttpRequest ( {
    method:     "POST",
    url:        "http://YOUR_SERVER.COM/YOUR_PATH",
    data:       "formData1=" + encodeURIComponent (formData1)
                + "&" + "formData2=" + encodeURIComponent (formData2)
                + "&" + "formData3=" + encodeURIComponent (formData3)
                // etc.
                ,
    headers:    {
        "Content-Type": "application/x-www-form-urlencoded"
    },
    onload:     function (response) {
        console.log (response.responseText);
    }
} );

关于javascript - 使用 Greasemonkey 进行跨域发帖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11275378/

相关文章:

php - $_POST 一个输入值分为两部分(分解?)

firefox - 部分阻止 Firefox 中嵌入的 JavaScript

javascript - 使用 Tampermonkey/javascript 控制 Netflix (HTML5) 播放

javascript - 如何创建始终在页面底部可见的 Web 表单?

javascript - 使用 PHP 的 jQuery Ajax POST 示例

linux - 如何在linux上发送POST请求

javascript - Greasemonkey:XPath 未返回 .xhtml 页面的结果

javascript - 在 JavaScript 中将变量放在 for 循环内部而不是外部有什么意义?

php运行javascript代码

javascript - Sidr.js 菜单在桌面上禁用