【发布时间】:2019-08-27 15:44:22
【问题描述】:
我正在创建一个注册和登录系统。我在 GET 请求中获得了一个表单 html 页面,它工作正常,但是当我使用 post 发布我的数据时,服务器在 chrome 检查中返回 302,并且请求类型是 xhr,因为我没有说重定向或任何告诉浏览器的代码去做。我真的需要帮助。
这是服务器文件
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var signupRouter = require('./routes/signup.js');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use('/signup', signupRouter);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
app.listen(3000, "localhost", function() {
console.log("server started listening on port 3000");
});
module.exports = app;
这是路由器文件
var router = express.Router();
/* GET home page. */
router.get('/', function(req, res, next) {
console.log('11212112');
res.render('signup', { title: 'signup section' });
});
router.post('create', function(req, res, next) {
console.log('fefffefefef');
res.statusCode = 200;
res.send('lfffff');
});
module.exports = router;
这是浏览器上的javascript
$.post("http://localhost:3000/signup/create",
{
name: "Donald Duck",
city: "Duckburg"
},
function (data, status) {
alert("Data: " + data + "\nStatus: " + status);
});
}
注意
警报未出现在 post 回调中,我在 chrome 检查时只看到 302
更新
这是邮递员测试网址的图片
【问题讨论】:
-
createError是什么? -
你只是给我指出了一个我不知道的函数,我把这个脚本从构建一个 node express 教程中作为一个初学者,你认为这是问题吗?我所知道的评论是它可能使用自定义 html 页面处理 404 错误
-
创建错误是一个处理 404 的函数,参见我使用的脚本中的第一行
var createerror
标签: node.js angularjs ajax rest express