【问题标题】:get null response from node in angular7 using subscribe function使用订阅功能从angular7中的节点获取空响应
【发布时间】:2023-03-07 04:05:01
【问题描述】:
router.post('/login', function (req, res) {
  let username = req.body.username;
  let password = req.body.password;
  console.log(username, "===> username");
  console.log(password, "===> password");

      User.findOne({
        username: req.body.username,
        },function (err, user) {
        if (err) {
          res.status(502).send({
            "Message": "Db error",
            "error": err
          });
          console.log("login if");
        }
        //console.log("log",user)
            if (user) {
              if (user.username === req.body.username && user.password == req.body.password) {
                    var token = jwt.sign({
                      username: req.body.username,
                    },process.env.SECRET_KEY, {
                        expiresIn: parseInt(process.env.EXPIRY_TIME)
                      });
                    res.send({
                      Message: "logged in sucessfully",
                      Token: token
                    })
              }
            } else {
                res.status(404).send({
                Message: "not found",
                })
              }
      });

});

//上面的代码是服务器端的,它向邮递员发送响应,也向客户端发送true,但不能发送对象
//下面的代码是login.component.ts文件

 login() {
     this.loginservice.authenticate(this.username, this.password)
        .subscribe((res) => {
              console.log(" user is",res);
              localStorage.setItem("user",res.toString());
                this.router.navigate(['dashboard']);
            }, (error) => {
              console.log(error);
            });
}

//最后一个代码是有作用的 验证(用户名,密码){

  const url = environment.binanceserver + '/users/login';
    console.log("Endpoint being hit", url, username, password);
    const obj = {
      "username": username,
      "password": password
    }
    return this.http.post(url, obj);

【问题讨论】:

  • 1.你得到什么错误? 2.console.log('user id',res)的输出是什么?
  • 您是否尝试过添加 Content-type 标头?
  • 1 跨域读取阻止 (CORB) 阻止了 MIME 类型 application/json 的跨域响应 127.0.0.1:3000/users/login。有关详细信息,请参阅chromestatus.com/feature/5629709824032768
  • 你确定req.body不为空(当请求被服务器处理时)?
  • 你必须使用this中间件来避免express出现cors问题

标签: javascript node.js angular mean-stack


【解决方案1】:

您需要从服务器端启用 CORS 以接受来自其他来源的请求。您可以使用cors 在 express/node 中启用 CORS。

【讨论】:

  • 没关系,我启用了 cors chrome 扩展
猜你喜欢
  • 2019-12-22
  • 2018-09-02
  • 1970-01-01
  • 2011-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多