我正在使用Angular连接RestAPI . 我收到了一个错误
zone.js:2969在来自'http:// localhost:4200'的'localhost:8000 / auth / api / authen'中访问XMLHttpRequest已被CORS策略阻止:仅对协议方案支持跨源请求:http ,数据,铬,铬扩展,https .
但这是我的POSTMAN结果,
这是我的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 回答
在您的节点应用程序中,您需要启用
CORS
,因为在错误中明确请求被CORS问题阻止,所以只需要这些代码行 -这将启用您对任何域的HTTP请求,您可以根据您的要求自定义原始列表 .