2012-09-17 90 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