2011-01-05 57 views
0

在我的Javascript很重的Web应用程序中,我有一些使用标记加载到源HTML中的脚本,以及使用jQuery的ajax方法根据需要加载的其他脚本。来自CDN的Ajax脚本加载(使用jQuery)不起作用

我正在将应用程序的大部分静态资产重定位到CDN(我正在使用AWS Cloudfront)。我的动态负载不再有效。 jQuery Ajax调用:

$.ajax({ 
    url: url, 
    dataType: 'script', 
    async: true, 
    success: function (content) { 
     .... 

触发成功功能,但内容为空。

我想知道是否这是因为这样的请求违反了浏览器的跨站脚本安全模型。如果是这样的话,是否需要从CDN动态加载脚本? Ahhh ...我目前不在使用Cloudfront主机的CNAME别名。这样做会解决这个问题吗?

+0

什么是您使用的网址? – Chandu 2011-01-05 23:41:06

+0

我还没有这样做,但我非常肯定,我需要使用指向我的Cloudfront的DNS设置CNAME,并告知Cloudfront有关CNAME的信息,以便它可以处理来自我的存储库的请求。 – Zhami 2011-01-07 01:06:27

+0

嗯,我有一个CNAME设置,但是因为它是一个子域,所以它没有帮助,因为相同的来源策略不允许从子域加载脚本。 – Zhami 2011-01-08 13:48:06

回答

1

你是对的,这是跨站脚本安全防止这一点。

您可以使用jQuery.getScript()方法从外部域(或内部)加载它。

+1

jQuery.getScript使用jQuery.ajax,所以我仍然面临同样的问题。 – Zhami 2011-01-08 13:46:54