【问题标题】:Load external domain script in Ember app [duplicate]在 Ember 应用程序中加载外部域脚本 [重复]
【发布时间】:2016-07-25 07:20:45
【问题描述】:

我正在尝试在我的 Ember 应用程序中加载来自不同域的 js。但是,我收到以下错误;

XMLHttpRequest 无法加载 https://external.main.com/my-client.js。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost' 因此不允许访问。

下面是我用来调用 JS(AJAX)的代码

var promise = new Ember.RSVP.Promise(function(resolve, reject) {
    return $.ajax({
        url: requestUrl,
        type: 'POST', 
        dataType: 'JSON',
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(postData),
        async: isAsync
    }).success(resolve).error(reject);
    })
    .catch(this.handleServerHTTPErrorCodes)
    .then(this.handleCommonServerErrors);
    return promise;

我还在 environment.js 中添加了以下配置

ENV.contentSecurityPolicy = {
  'connect-src': "'self' https://external.main.com"
}

如何在 Ember 中加载外部 JS?

【问题讨论】:

  • 但就像我说的,我已经尝试过使用 contentSecurityPolicy

标签: javascript ajax ember.js


【解决方案1】:

试试:

ENV.contentSecurityPolicy = {
  'connect-src': "'self' http://localhost"
}

作为临时解决方法,请在 Chrome 中尝试:

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

编辑: 为什么要尝试通过 Ajax 加载 JS 文件?通常你会在 index.html 文件中加载它,然后你就可以访问它的方法了。

【讨论】:

  • 谢谢,我需要对 dataType: 'JSON', 进行任何更新吗?我得到了一个 JS,它暴露了一些对象
  • 我需要执行这个外部 JS (object.method) 中返回的方法之一
  • 需要在index.html文件中导入js文件,然后调用其方法。
  • 这是一个外部文件,我只能通过 AJAX 访问它..
猜你喜欢
  • 2014-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-08
  • 1970-01-01
相关资源
最近更新 更多