从angular6向nodejs express发送发布请求时发生未知错误

时间:2019-05-25 21:27:52

标签: node.js express

我正在尝试使用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,但是我添加到标头中的任何内容都没有改变最终结果-我一直收到这个无提示性的错误

1 个答案:

答案 0 :(得分:0)

您的响应存在问题,因为您无法使用

设置标题
res.headers("Access-Control-Allow-Origin", "*") 

您需要致电

res.setHeaders("Access-Control-Allow-Origin", "*")

如果您使用Express,我建议使用https://github.com/expressjs/cors处理CORS问题。