2010-03-26 93 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

@丹尼尔,谢谢,但我不确定你的意思在这里 - 你的意思是通过

相关问题