在网站AAA.com
上将包含来自网站BBB.com
的javascript,该javascript必须是非阻止执行脚本。
BBB.com
抓取的javascript会从meta keywords
中提取meta title
,AAA.com
,并将这些数据发送到特定网址{{1} }}
BBB.com
网站将发送一个视频播放器的网址。
我想我会遇到问题,因为这显然是一个跨域请求,我想用BBB.com
请求来解决,但问题是我们无法使用JSON-P
。
你会如何实现这一目标?
答案 0 :(得分:1)
JSON-P和CORS都与jQuery没有任何关联。这也恰好是用Javascript编写的库,因此永远不可能做Javascript本身不能做的任何事情。
此外,您的方案看起来根本不需要任何跨域请求。只需在您的AAA.com页面上显示类似<script src="http://BBB.com/script.js"></script>
的内容,它就会起作用,因为<script>
标记不会强加任何原点限制而且从未这样做过。使用动态创建的<iframe>
和/或<form>
标记将结果作为POST
异步提交回BBB.com,或者使用src
(<img>
,{<script>
{ {1}})将其作为GET
提交。
答案 1 :(得分:1)
来自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"});