Angular客户端启用CORS

时间:2018-08-01 18:39:10

标签: node.js angular express cors

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).

如何在此请求上启用CORS。..... enter image description here

3 个答案:

答案 0 :(得分:2)

您不需要启用angulars cors,这是服务器端的问题。参见:

https://stackoverflow.com/a/29548846/4461537

答案 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());