2012-09-17 37 views
1

在网站上AAA.com将包含一个来自网站BBB.com的javascript,它必须是非阻塞执行脚本。跨域请求和普通javascript

JavaScript的抓起BBB.com将提取meta keywords,在meta titleAAA.com,它会被这些数据发送到一个特定的URL网站BBB.com

视频播放器的BBB.com网站将发回一个网址。

我想我会有问题,因为这显然是一个跨域请求,我想用JSON-P请求解决,但问题是我们不能使用jQuery

你会怎么做到这一点?

+0

你真的不需要jQuery来使JSONP请求! – Bergi

+0

http://stackoverflow.com/questions/6132796/how-to-make-a-jsonp-request-from-javascript-without-jquery – jbabey

+0

jQuery只是公开现有的功能; http://stackoverflow.com/questions/2067472/please-explain-jsonp –

回答

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"}); 
1

JSON-P和CORS都与jQuery没有任何关系。这也正好是使用Javascript编写的库,因此永远不可能做任何Javascript本身无法做到的事情。

此外,您的方案看起来不需要任何跨域请求。只需在您的AAA.com页面上输入<script src="http://BBB.com/script.js"></script>之类的内容即可,因为<script>标记不会强加任何来源限制,也不会产生任何限制。使用动态创建的和/或<form>标签异步提交结果返回BBB.com作为POST或几乎任何与src<img>,<script>)提交它们作为GET