带有post命令的Javascript bookmarklet

Dav*_*801 2 javascript

我正在尝试制作一个javascript bookmarklet,它将使用HTTP POST方法从我的浏览器向我的php表单发送数据.我似乎无法让它工作......有人可以看看,告诉我为什么请?

var xhr = new XMLHttpRequest();
var params="v=66b12127";
xhr.open("POST", "http://google.com/index.php", true);
xhr.onreadystatechange = function() {
    if(this.readyState == 4) {
        window.alert("works");
    }
}
xhr.send(params);
Run Code Online (Sandbox Code Playgroud)

在书签格式:

javascript:var xhr=new XMLHttpRequest();var params="v=66b12127";xhr.open("POST","http://google.com/index.php",true);xhr.onreadystatechange=function(){if(this.readyState==4){window.alert("works");}}xhr.send(params);
Run Code Online (Sandbox Code Playgroud)

小智 6

在大多数情况下,由于跨域限制(也称为同源策略),您无法执行POST请求.但是,如果您对执行请求感兴趣并且对阅读答案不感兴趣,则有一个解决方案:使用bookmarklet,插入form具有相应action属性的a,然后运行表单的DOM对象的.submit()函数.请注意,这将重新加载整个页面.如果要避免这种情况,请创建一个iframe并将表单的target属性设置为其名称.您可以选择隐藏iframe,或者 - 如果您希望用户看到结果 - 让它可见.