2010-03-26 65 views
1

是否有可能爲我提供一個包含對我託管的JavaScript文件的引用的HTML片段的客戶端?他們希望將這個HTML粘貼到他們的CMS中,以便在頁面加載時加載我們的內容。客戶端可以鏈接到我的JavaScript,託管在不同的域上?

我的印象是,有跨域安全防止這種可能性。

如果有什麼,而不是鏈接到的JavaScript,我給他們的HTML與JavaScript的已經包括

所以不是

<div> 
    <!-- link to js --> 
</div> 

片斷我給他們

<div> 
    $.get(/*url to my content*/); 
</div> 

這會起作用嗎?

+0

當你說「加載我們的內容」,這是內容的JavaScript,還是有更多? – spender 2010-03-26 09:30:04

回答

1

你可以使用JSONP模擬跨域AJAX調用(僅適用於GET請求可以作爲在內部它採用了script標籤):

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?", 
    function(data) { 
     $.each(data.items, function(i,item) { 
      $("<img/>").attr("src", item.media.m).appendTo("#images"); 
      if (i == 3) return false; 
     }); 
    } 
); 
1

是否有可能爲我提供一個HTML片段,其中包含對我託管的JavaScript文件的引用的客戶端?

是。腳本元素的src沒有相同的原始限制。

$.get(/*url to my content*/);

的XMLHttpRequest還是確實有相同的起源限制。 XHR只能從的域中獲取,而不是腳本。

0

從不同的域引用一個JavaScript文件是沒有問題的。這不是跨站點腳本,它只是一個跨站點HTTP請求。這個用法很多,例如由Google的JavaScript API加載器提供。

1

HTML <script>標記可免於相同的來源策略,因此如果您的客戶端使用<script>標記鏈接到您的JavaScript文件,則不會有任何問題。 (Source

+0

@丹尼爾,謝謝,但我不確定你的意思在這裏 - 你的意思是通過

相關問題