use*_*165 0 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();
}
Run Code Online (Sandbox Code Playgroud)
有人说即使我们发帖,我们也无法接受这些价值观.如果我们不能,只需让用户访问该页面即可.它可以在JS,jQuery,AJAX帖子中.不仅仅是form-iframe技巧.
Greasemonkey内置了对跨域发布的支持.您不需要使用jsonp,也不需要使用iframe.使用GM_xmlhttpRequest函数.
您可以直接发送表单编码数据,而不是尝试构建表单并将其发布:
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);
}
} );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4464 次 |
| 最近记录: |