Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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
Javascript 使用bookmarklet进行来回跨源通信_Javascript_Ajax_Jsonp_Bookmarklet - Fatal编程技术网

Javascript 使用bookmarklet进行来回跨源通信

Javascript 使用bookmarklet进行来回跨源通信,javascript,ajax,jsonp,bookmarklet,Javascript,Ajax,Jsonp,Bookmarklet,我想做一个书签,用户可以添加到浏览网站时点击。单击书签获取一些页面内容并将其发送到myserverapi.com 然后,myserverapi.com将回复发送回bookmarklet,然后bookmarklet将结果显示给用户,而不会将结果从他们单击bookmarklet的页面中移除。用户确认了一些内容,然后数据再次发送回myserverapi.com 这可能吗 我知道JSONP,但据我所知,它只适用于检索数据:我想知道信息是否可以以某种方式编码并以来回的方式发送到服务器 谢谢 啊,在这个用例

我想做一个书签,用户可以添加到浏览网站时点击。单击书签获取一些页面内容并将其发送到myserverapi.com

然后,myserverapi.com将回复发送回bookmarklet,然后bookmarklet将结果显示给用户,而不会将结果从他们单击bookmarklet的页面中移除。用户确认了一些内容,然后数据再次发送回myserverapi.com

这可能吗

我知道JSONP,但据我所知,它只适用于检索数据:我想知道信息是否可以以某种方式编码并以来回的方式发送到服务器

谢谢

啊,在这个用例中,CORS可以工作,因为我可以控制服务器。
我想不出有哪种情况需要来回发送数据到一个可能不愿意发送数据的服务器,只是反过来而已。

如果您有CORS,为什么不直接将数据发送到服务器?见:

这个问题已经回答了,但如果您不能使用CORS,下面是答案:

我知道JSONP,但据我所知,它只适用于检索数据:我想知道信息是否可以以某种方式编码并以来回的方式发送到服务器

你很接近,答案就在你的掌握之中

您可以通过以下两种方式之一向服务器发送数据:

一,。最简单的方法是使用GET。您的JSONP脚本可以类似于server/JSONP.php?data=antyhing+you+want。因此,这基本上与在同一域中使用AJAX通信相同,但不是使用XMLHttpRequest来执行GET,而是添加了一个脚本

二,。如果要发送的数据超出了GET可以处理的范围,则可以使用表单和iFrame发布数据。其中一个表单变量应该包含一个唯一的ID,以便该POST用作键。因为POST不能返回任何数据,所以必须使用GET方法获取对应于该键的响应。因为POST是异步的,所以GET应该轮询服务器,直到服务器成功响应为止,这取决于服务器是否接收到带有相应密钥的POST