提问者:小点点

在运行angular应用程序时,出现CORS策略阻止访问XMLHttpRequest的错误。 有什么解决办法吗?



共2个答案

匿名用户

您需要在服务器上启用CORS请求。

如果使用node和Express:

var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors()) // Globally on all routes

// Or locally on one route only.
app.get('/products/:id', cors(), function (req, res, next) {
  res.json({msg: 'This is CORS-enabled for a Single Route'})
})

https://github.com/expressjs/cors

匿名用户

CORS是所有主要web浏览器都实现的标准安全协议。

您只能允许从服务器跨源共享资源,由于明显的安全原因,它不能从客户端(浏览器应用程序)覆盖。

@Gwenm已经展示了如何从服务器端,基于节点的Express应用程序实现这一点。

在其他服务器端框架中实现这一点的方式对于每个框架都是不同的,但总是导致从服务器向客户机发送“Access-Control-Allow-Origin”报头。

如果服务器应用程序希望客户端能够从任何其他站点请求资源,那么该头的内容就是星号(“*”)。 如果服务器应用程序希望客户端能够从单个外部站点请求资源,则内容就是该站点的地址。

有关CORS工作原理的详细说明,请参阅https://developer.mozilla.org/en-us/docs/web/http/CORS的MDN页面

要获得在特定服务器/服务器端框架中启用此功能的帮助,请在SO上搜索--这里有数百个关于COR的问题和答案,这些问题和答案与每一个可以想象的服务器环境有关。