CORS在服务器上可以正常使用,并且可以正常工作。我尝试使用角度HTTPClient将请求发送到服务器的REST API,但收到CORS错误。 如果在服务器上启用了CORS,为什么这是一个错误?对客户来说还可以吗?
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:3000/api/blah/blah (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
答案 0 :(得分:2)
您不需要启用angulars cors,这是服务器端的问题。参见:
答案 1 :(得分:0)
有一个Express
CORS中间件:
npm install cors --save
启用所有CORS请求:
const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
app.get('/products/:id', function (req, res, next) {
res.json({msg: 'This is CORS-enabled for all origins!'})
});
const port = process.env.PORT || 8080;
app.listen(port, () => {
console.log(`CORS-enabled server is up on ${port}`);
});
为单条路线启用CORS
const express = require('express');
const cors = require('cors');
const app = express();
app.get('/products/:id', cors(), (req, res, next) => {
res.json({msg: 'This is CORS-enabled for a Single Route'})
});
const port = process.env.PORT || 8080;
app.listen(port, () => {
console.log(`CORS-enabled server is up on ${port}`);
});
答案 2 :(得分:0)
为了以后的参考,是“ Davids”的回答为我提供了帮助,没有在所有路由之前添加cors。
“ .....含义,在定义路由之前。” 所以...之后 var app = express();
我只是用... app.use(cors());