Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让Ajax使用Bookmarklet并绕过Javascript同源策略?_Javascript_Ajax_Xmlhttprequest_Bookmarklet - Fatal编程技术网

如何让Ajax使用Bookmarklet并绕过Javascript同源策略?

如何让Ajax使用Bookmarklet并绕过Javascript同源策略?,javascript,ajax,xmlhttprequest,bookmarklet,Javascript,Ajax,Xmlhttprequest,Bookmarklet,我正在尝试编写一个Bookmarklet,目标是能够将任何站点X(单击Bookmarklet时它们所在的原始页面)的信息提交到我的站点服务器,同时留在站点X上 理想情况下,我将能够发送一个回应回来,并有它弹出的地方,但这不是必要的 我一直遇到同源策略的问题——从站点X,XMLHttpRequests只能通过站点X的域启动 有人知道解决这个问题的方法吗(或者他们可以给我指一个教程)?一些带有Bookmarklet的Ajax 非常感谢 您可以使用执行跨域ajax请求(使用GET发送数据,并以JSON

我正在尝试编写一个Bookmarklet,目标是能够将任何站点X(单击Bookmarklet时它们所在的原始页面)的信息提交到我的站点服务器,同时留在站点X上

理想情况下,我将能够发送一个回应回来,并有它弹出的地方,但这不是必要的

我一直遇到同源策略的问题——从站点X,XMLHttpRequests只能通过站点X的域启动

有人知道解决这个问题的方法吗(或者他们可以给我指一个教程)?一些带有Bookmarklet的Ajax


非常感谢

您可以使用执行跨域ajax请求(使用GET发送数据,并以JSON形式接收数据)。

您加载的bookmarklet可以从主机页将数据发布到服务器。这很奇怪,但只有Javascript受到同源策略的限制。
对另一台服务器进行
GET
POST
调用可以正常工作

bookmarklet可以在主机页中插入一个隐藏的
IFRAME
,带有
src
属性,如
http://yourdomain.com/listen

然后构建一个
表单
,属性为:
target
,指向该
IFRAME

最后将表格提交给
发布
数据

不幸的是,SOP不允许您直接阅读帖子的回复,因为它发生在IFRAME中,并且除了主页之外还有另一个域

但是如果您需要请求的反馈,您的bookmarklet可以使用
setInterval
每隔X毫秒轮询一次,并使用询问请求的状态

调用类似以下内容:
http://yourdomain.com/get-post-status?id=2234234&callback=showResult