找不到NodeJS Ajax 404文件

时间:2019-07-11 17:46:19

标签: node.js ajax express

我是NodeJS的新手。我有一个登录页面,我正在尝试使用表单验证用户。因此,我正在捕获表单提交,并将ajax请求发送到我的server(app.js)文件。但是,我从服务器取回的内容是404-。我要执行验证,如果用户被验证,则将他带到另一个页面,或者在登录页面本身中打印错误消息。我没有在node-js中做到这一点。还有一个疑问,如何同时处理页面的Ajax请求和HTTP请求。谢谢。

这是我执行验证的客户端Javascript代码:

function checkUserParameters(username, password) {
var jsonObj= '{"username": \"'+username+'\", "password": \"'+password+'\"}'
jsonObj= JSON.parse(jsonObj)
$.ajax({
    url: 'http://localhost:3000/login.html',
    type: 'post',
    data: jsonObj,
    success: function (data) {
        console.log('Obtained '+data+' data from server')
    },
    error: function (jqXHR, textStatus, error) {
        console.log('Text status : '+textStatus+' Error: '+error)
    }
})

}

这是服务器(app.js)代码:

const path= require('path')
const express= require('express')
const mongodb= require('mongodb')
const MongoClient= mongodb.MongoClient

const databaseURL= 'mongodb://127.0.0.1:27017'
const databseName= 'projektx'

const app= express()
const pathDir= path.join(__dirname, '../public')

app.use(express.static(pathDir))
app.use(function (req, res, next) {
    res.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000')
    res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE')
    res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type')
    res.setHeader('Access-Control-Allow-Credentials', true)
    next()
})

app.post('/login', (req, res) => {
    res.sendFile('./login.html')
})

app.listen(3000, () => {
    console.log("Server is up on port 3000")
})

1 个答案:

答案 0 :(得分:0)

您的AJAX请求的url与您向Express app.post/login端点的公开路径不匹配。

您需要将AJAX请求更改为/login而不是/login.html,或将Express端点更改为/login.html