首页 文章

zone.js:2969 CORS策略阻止了对XMLHttpRequest的访问

提问于
浏览
0

我正在使用Angular连接RestAPI . 我收到了一个错误

zone.js:2969在来自'http:// localhost:4200'的'localhost:8000 / auth / api / authen'中访问XMLHttpRequest已被CORS策略阻止:仅对协议方案支持跨源请求:http ,数据,铬,铬扩展,https .

但这是我的POSTMAN结果,
enter image description here

这是我的Nodejs代码

const express    = require('express');
const app        = express();
const bodyParser = require('body-parser');

app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

var port = process.env.PORT || 8000;

var router = express.Router();

app.all('*', function(req, res, next) {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Methods', 'DELETE, HEAD, GET, OPTIONS, POST, PUT');
  res.header('Access-Control-Allow-Headers', 'Content-Type');
  next();
});

app.use('/', router);

router.get('/api', function(req, res, next) {
    res.json({ message: 'hello' });
});

router.post('/auth/api/authen', function(req, res, next){

  res.json({
    success : true,
    result : req.body
  });

});

// START THE SERVER
app.listen(port);
console.log('Magic happens on port ' + port);
private options = { headers: new HttpHeaders().set('Content-Type', 'application/json') }

  login(username:string, password:string, ipaddress:string ) : Observable<any> {
    return this.http.post<any>( this.baseUrl + '/auth/api/authen', { username, password, ipaddress }, this.options )
      .pipe(
        map(res => {
          console.log(res);
          return res;
        })
      );
  }

一切似乎都很简单,但我无法从Angular应用程序向服务器发送请求 . 请帮忙 . 谢谢 .

1 回答

  • 0

    在您的节点应用程序中,您需要启用 CORS ,因为在错误中明确请求被CORS问题阻止,所以只需要这些代码行 -

    var cors = require('cors')
    
    var app = express()
    app.use(cors());
    

    这将启用您对任何域的HTTP请求,您可以根据您的要求自定义原始列表 .

相关问题