找不到NodeJS Ajax 404文件

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (49)

我是NodeJS的新手。我有一个登录页面,我正在尝试使用表单验证用户。所以我正在捕获表单提交并向我的服务器(app.js)文件发送ajax请求。但是,我从服务器返回的是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")
})
提问于
用户回答回答于

url你的AJAX请求不匹配的路径,你暴露在快递app.post/login终点。

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

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励