【问题标题】:Cannot assign "Access-Control-Allow-Origin" in XmlHttpRequest无法在 XmlHttpRequest 中分配“Access-Control-Allow-Origin”
【发布时间】:2019-06-06 01:25:19
【问题描述】:

我正在尝试使用 XMLHttpRequest 请求 ping 我的后端 api。

以下是我的代码

var r = new XMLHttpRequest();
r.open("POST", 'domain:port/path/');
r.setRequestHeader("Access-Control-Allow-Origin", '*');
r.setRequestHeader("Accept", 'application/json ');

var data = {"key":"value"};

r.send(data);

但我总是接受以下错误信息

从源访问“域:端口/路径/”处的 XMLHttpRequest “http://localhost:8000”已被 CORS 策略阻止:响应 预检请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。

首先;我认为那是因为我没有设置“Access-Control-Allow-Origin”。但即使我设置了它,它也不起作用。

我该如何解决我的问题?

谢谢。

【问题讨论】:

标签: javascript django-rest-framework xmlhttprequest


【解决方案1】:

来自MDN Access-Control-Allow-Origin 响应标头指示响应是否可以与来自给定源的请求代码共享

它是一个响应头,你需要在你的服务器端代码上设置 Access-Control-Allow-Origin

【讨论】:

    【解决方案2】:

    Access-Control-Allow-Origin 是 response 标头,而不是请求标头。 您的 服务器 决定允许哪些来源访问它。如果它那么容易绕过,它真的是一种安全措施吗? :-) 如果您真正想要的是该端点允许任何域访问它,那么您必须在此处添加标头。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-24
      • 2013-06-14
      • 2014-04-25
      • 2014-03-05
      • 2012-05-25
      • 1970-01-01
      • 2021-06-23
      相关资源
      最近更新 更多