我正在尝试使用httpClient(从前端)向nodeJS Express服务器发送一个简单的发布请求, 出于某些原因,我尝试这样做时总是收到“未知错误”,
我在前端使用的代码:
this.httpClient.post('http://127.0.0.1:8989/login',
{ username: 'test',
password: 'pass1'
}, {headers: {'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' } })
.subscribe(
data => {
debugger;
console.log('POST Request is successful', data);
},
error => {
console.log('ERROR');
}
);
我在nodejs Express后端中使用的代码:
var express = require('express');
var app = express();
app.set('trust proxy', true)
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.listen('8989');
console.log('Server started! At http://127.0.0.1:8989');
app.post('/login', function(req, res, next) {
var user = req.body.username;
var password = req.body.password;
var ip = req.ip || req.connection.remoteAddress;
console.log('***** ' + user + " " + password + " " + ip);
});
以及发送请求时客户端出现的错误:
“ http://127.0.0.1:8989/login的Http错误响应:0未知 错误”
有什么想法吗?我怀疑CORS,但是我添加到标头中的任何内容都没有改变最终结果-我一直收到这个无提示性的错误
答案 0 :(得分:0)
您的响应存在问题,因为您无法使用
设置标题res.headers("Access-Control-Allow-Origin", "*")
您需要致电
res.setHeaders("Access-Control-Allow-Origin", "*")
如果您使用Express,我建议使用https://github.com/expressjs/cors处理CORS问题。