客户端链接到我的JavaScript,托管在不同的域上吗?

时间:2010-03-26 09:27:16

标签: javascript jquery html cross-domain

我是否可以为客户端提供HTML代码段,其中包含对我托管的javascript文件的引用?他们希望将此HTML粘贴到他们的CMS中,这样当他们的页面加载时,它就会加载我们的内容。

我的印象是有跨域安全阻止这种情况发生。

如果我没有链接到JavaScript,而是将已包含的JavaScript的HTML片段提供给他们,该怎么办

所以而不是

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

我给了他们

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

那会有用吗?

4 个答案:

答案 0 :(得分:1)

  

我是否可以为客户提供HTML代码段,其中包含对我托管的javascript文件的引用?

是。脚本元素的src没有相同的原点限制。

  

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

XMLHttpRequests仍然具有相同的原始限制。 XHR只能从页面的域中获取,而不能从脚本中获取。

答案 1 :(得分: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;
        });
    }
);

答案 2 :(得分:1)

HTML <script>代码免于同一原始政策,因此如果您的客户使用<script>代码链接到您的JavaScript文件,则不会有任何问题。 (Source

答案 3 :(得分:0)

从其他域引用javascript文件没问题。这不是跨站点脚本,它只是一个跨站点HTTP请求。这被大量使用,例如通过Google的JavaScript API Loader。