所以,我有一张注册表。每当一个用户按下“提交”按钮时,我都希望将该用户重定向到另一个名为(menus.html)的页面,并且,当该用户被重定向时,我想在服务器端运行查询并在其中写入其用户名和密码。数据库。不幸的是,这是行不通的,因为找不到(menus.html)。那么为什么menus.html不在服务器上,而login.html在服务器上呢?我的错误是:

错误:http://127.0.0.1:3000/menus.html-找不到404

前端侧:

$("#submit_reg").click(function(){
        var username = $("#usr").val();
        var password = $("#pwd").val();

        $.ajax({
          url : "menus.html",
          type : "POST",
          data : {
             user: username,
             pass: password,
          },
          success : function(data){
             console.log("The data :) " + data + " :) " + "has been posted to menus.html");
          }
        });
 });


服务器端 :

var app = require('express')();
var mysql = require('mysql');
var bodyParser = require('body-parser');
var db = mysql.createConnection({
    host : "127.0.0.1",
    user : "root",
    password : "",
    database : "user_data",
    port : 3306
});

db.connect();

app.get('/',function(req, res){
  res.sendFile(__dirname+'/login.html');
});
app.post('/menus',function(req, res){
  res.sendFile(__dirname+'/menus.html');
});
app.listen(3000);

最佳答案

在客户端脚本中,您要发布到menus.html,而不是/menus

除了为/明确定义的GET处理程序(发送login.html)之外,您没有任何设置可以实际提供静态内容。您为菜单定义的唯一内容是/menus,与/menus.html不同。

您应该做的是将Express静态模块用于静态文件,然后从此处开始为/menus(或所需的任何路径)定义帖子。

09-29 23:53