Ajax 护照总是显示“护照”;“用户已注册”;

Ajax 护照总是显示“护照”;“用户已注册”;,ajax,node.js,express,passport.js,stripe-payments,Ajax,Node.js,Express,Passport.js,Stripe Payments,我正在使用passport JS在我的网站上注册用户。在注册请求中,我试图使用Stripe向我的用户收费。我也在使用Ajax,因为这是一个单页应用程序 它似乎很好地完成了代码,但我担心Ajax可能会造成问题。奇怪的是,反应并不总是一样的。有时条纹电荷通过,有时不通过 这里的问题是:当我以用户名注册为新用户时,我100%确定没有使用该用户名-它将显示“UserExistError:具有给定用户名的用户已注册” 如何更改代码以修复此问题 app.post("/quiz", function(req,

我正在使用passport JS在我的网站上注册用户。在注册请求中,我试图使用Stripe向我的用户收费。我也在使用Ajax,因为这是一个单页应用程序

它似乎很好地完成了代码,但我担心Ajax可能会造成问题。奇怪的是,反应并不总是一样的。有时条纹电荷通过,有时不通过

这里的问题是:当我以用户名注册为新用户时,我100%确定没有使用该用户名-它将显示“UserExistError:具有给定用户名的用户已注册”

如何更改代码以修复此问题

app.post("/quiz", function(req, res){

    var token = req.body.stripeToken; // Using Express
console.log(' CHARGE STEP 1')
// Charge the user's card:
var charge = stripe.charges.create({
  amount: 2800,
  currency: "usd",
  description: "Example charge",
  source: token,
}, function(err, charge) {
  // asynchronously called
});

    User.findOne({username: req.body.username}, function(err, user){
        console.log(' CHARGE STEP 2')
      if(err) { } 
      if(user) { 
          //this is how you sent the "USER NAME TAKEN ERROR"
          res.json({"message": "false" });
      }
    });
   }); 


      //continue with your registration logic once it has been checked that the username is not taken!!!
      var newUser = new User({username: req.body.username, datapoint: req.body.datapoint});
      User.register(newUser, req.body.password, function(err, user){

            if(err){
            console.log("this error" + err)


          } else {
          passport.authenticate("local")(req, res, function(){
            //  req.flash("success", "Welcome to JobQuiz " + user.username);
            //  res.redirect("jobquiz");
             res.json({"message": "true" });
            //  res.redirect('/jobquiz')
             console.log(' CHARGE STEP 3')

          });

          }

      });
});
这里是AJAX代码

$(function() {
                $("#checkpaymentForm").on("submit", function(e) {
                    e.preventDefault();
                    $.ajax({
                    url: $(this).attr("action"),
                    type: 'POST',
                    data: $(this).serialize(),
                    dataType:'json',

                 success: function (data) {
                     console.log(data)
                    if (data.message === "false") {
                        $('#testERROR').html('Whoops, that username is taken')
                    }
                      else if (data.message === "true") {
                        $('#testERROR').html('Thank you for joining!')

                      }

                 }

                    });
                });

                });

你试过记录从ajax发出的数据了吗?@Kunkka我试过console.log(data),它给我一个正确或错误的预期值。啊,不,我的意思是记录从ajax发出的请求。ajax提供的数据可能有问题serializes@Kunkka嗯,我该怎么记录呢?:)你试过记录从ajax发出的数据了吗?@Kunkka我试过console.log(data),它给我一个正确或错误的预期值。啊,不,我的意思是记录从ajax发出的请求。ajax提供的数据可能有问题serializes@Kunkka嗯,我该怎么记录呢?:)