无法在 ember 中向后端服务器发出请求(错误:'No Access-Control-Allow-Origin')

Posted

技术标签:

【中文标题】无法在 ember 中向后端服务器发出请求(错误:\'No Access-Control-Allow-Origin\')【英文标题】:Not able to make request to backend server in ember (error :'No Access-Control-Allow-Origin')无法在 ember 中向后端服务器发出请求(错误:'No Access-Control-Allow-Origin') 【发布时间】:2016-02-08 19:31:28 【问题描述】:

我在 ember js 中有设计适配器,它向后端发送请求以获取数据但出现错误 "XMLHttpRequest cannot load https://example.com/api. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access." 在控制台中。

如果我在我的服务器上的 nginx 配置文件中使用以下代码,我可以解决这个问题。后端是使用 django 设计的。

if ($request_method = 'GET') 
        add_header 'Access-Control-Allow-Origin' '*';
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
     

但我不想打扰 tha nginx 配置。

适配器

import DS from 'ember-data';

export default DS.RESTAdapter.extend(
    host:"https://example.com/api/",
);

如何发送请求以使其不显示任何错误

【问题讨论】:

【参考方案1】:

在您的 settings.py 中使用 django-cors-headers 进行配置:

CORS_ORIGIN_ALLOW_ALL = True
CORS_ALLOW_HEADERS = (
  'x-requested-with',
  'content-type',
  'accept',
  'origin',
  'authorization',
  'x-csrftoken',
  'cache-control',
  'accept-encoding',
)

【讨论】:

【参考方案2】:

不幸的是,您将不得不编辑服务器的配置文件。否则,您必须从与后端相同的域和端口为应用程序提供服务。

【讨论】:

如何在 ember js 中从同一个域和端口为我的应用程序提供服务。我对 ember js 和 javascript 的东西很陌生

以上是关于无法在 ember 中向后端服务器发出请求(错误:'No Access-Control-Allow-Origin')的主要内容,如果未能解决你的问题,请参考以下文章

为啥我在尝试在 iOS Swift 中向服务器发出 post 请求时收到此错误:在展开 Optional 值时意外发现 nil?

如何在 reactjs 中向 nodejs RESTful API 发出 POST 请求

无法从客户端向 Fastify 后端发出 PUT 请求 [重复]

SSM中向后端传递的属性为多个对象的实现方法

如何在 React Native 中向 API 发出 POST 请求?

当您不知道页数时,如何使用 Node.js 在 while 循环中向 API 发出多个分页 GET 请求?