javascript - ExpressJS 似乎不适用于 ajax 调用

标签 javascript json node.js ajax express

我正在尝试找出 Node.js 作为 api 来执行 GET、POST 等操作。我一直在试图找出为什么这篇文章不起作用。

我的ajax调用:

$.ajax({ 
        method: "POST", 
        contentType: 'application/json',
        dataType: 'json',
        url: "localhost:8000/login", 
        data: JSON.stringify({user:"john", pass:"123"}),
        error: function () {
            alert('error');
        },
        success: function (data) {  
            alert('success');
        }
    });

用我的话说:

var express = require('express');
var app = express();
var bodyParser = require('body-parser');

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/login', function (req, res) {
  var user = req.body.user;
  var password = req.body.pass;
  if(user == 'john' && password == '123') {
    res.status(200);
  } else {
    res.status(401);
  }
});

app.listen(8000, function () {
  console.log('Example app listening on port 8000!');
});

非常感谢任何帮助。

最佳答案

您应该从您的快速代码中返回一些响应,并且响应也应该结束,特别是在仅发送状态代码(例如 res.status(401);

)的情况下
app.post('/login', function (req, res) {
    var user = req.body.user;
    var password = req.body.pass;
    if(user == 'john' && password == '123') {
        res.status(200).json({t:1});
    } else {
        res.status(401);
    }

    res.end();
});

关于javascript - ExpressJS 似乎不适用于 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43153490/

相关文章:

Javascript:在 promise 完成之前返回触发

java - 客户端服务器通信 - Java 服务器

javascript - 在 Javascript 中合并两个 json 对象?

javascript - 密码重置 token GET 请求不起作用

node.js - 超出最大堆栈大小 - 事件流

javascript - 在此队列函数中使用 jquery next()

javascript - 如何在 javascript 中以递归方式列出 N 级的 Google Drive 文件和文件夹?

javascript - 页面重新加载后恢复所选/突出显示的文本

json - Meteor 在客户端集合中插入日期或时间戳

javascript - 针 : node. js 在 POST 上返回 500