在网站AAA.com
上将包含来自网站的 javascript,BBB.com
它必须是非阻塞执行脚本。
抓取的 javascriptBBB.com
将提取meta keywords
, meta title
fromAAA.com
并将这些数据发送到特定的 url 到网站BBB.com
该BBB.com
网站将发回视频播放器的网址。
我想我会遇到问题,因为这显然是一个跨域请求,我想通过JSON-P
请求来解决,但问题是我们不能使用jQuery
.
请问您将如何实现?
在网站AAA.com
上将包含来自网站的 javascript,BBB.com
它必须是非阻塞执行脚本。
抓取的 javascriptBBB.com
将提取meta keywords
, meta title
fromAAA.com
并将这些数据发送到特定的 url 到网站BBB.com
该BBB.com
网站将发回视频播放器的网址。
我想我会遇到问题,因为这显然是一个跨域请求,我想通过JSON-P
请求来解决,但问题是我们不能使用jQuery
.
请问您将如何实现?
BBB.com 的第一个脚本必须解析关键字,将它们序列化为 URL 查询,并动态创建第二个<script>
标签,从 BBB.com 加载内容(这是您绕过 SOP 限制的方法)。
来自 BBB.com 的内容通常是对第一个知道如何使用内容的脚本中的某个函数的调用。
例如,第一个脚本可能看起来像
function showVideoPlayer(parameters) {
// ...
}
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://bbb.com/crossdomain?'; // includes serialized meta keywords
// and now append script to e.g. the body so that the request is made
返回的内容将是
showVideoPlayer({param1: "value1", param2: "value2"});
JSON-P 和 CORS 都与 jQuery 没有任何关系。它也恰好是用 Javascript 编写的库,因此永远不可能做 Javascript 本身不能做的任何事情。
此外,您的方案看起来根本不需要任何跨域请求。只需在您的 AAA.com 页面上添加类似的<script src="http://BBB.com/script.js"></script>
内容,它就会起作用,因为<script>
标签不会施加任何来源限制,而且从来没有这样做过。使用动态创建<iframe>
和/或<form>
标签将结果异步提交回 BBB.com,POST
或几乎任何带有src
( <img>
, <script>
) 的东西将它们提交为GET
.