【问题标题】:Ajax loading of scripts (using jQuery) from CDN is't working从 CDN 加载脚本(使用 jQuery)的 Ajax 无法正常工作
【发布时间】:2011-06-04 08:48:45
【问题描述】:

在我的 Javascript 繁重的 Web 应用程序中,我有一些脚本使用标记加载到源 HTML 中,而其他脚本则根据需要使用 jQuery 的 ajax 方法加载。

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

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

触发成功函数,但内容为空。

我想知道这是否是因为这样的请求违反了浏览器的跨站点脚本安全模型。如果是这种情况,是否可以从 CDN 动态加载脚本?啊……我目前没有为云端主机使用 CNAME 别名。这样做能解决这个问题吗?

【问题讨论】:

  • 您使用的网址是什么?
  • 我还没有这样做,但我很确定我需要使用指向我的 Cloudfront 的 DNS 设置一个 CNAME,并告诉 Cloudfront 有关 CNAME 的信息,以便它可以为来自我的存储库的请求。
  • 好吧,我设置了一个 CNAME,但由于它是针对子域的,它没有帮助,因为同源策略不允许从子域加载脚本。

标签: ajax jquery amazon-cloudfront


【解决方案1】:

你是对的,这是防止这种情况发生的跨站点脚本安全性。

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

【讨论】:

  • jQuery.getScript 使用 jQuery.ajax,所以我仍然面临同样的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-11
  • 2017-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多