簡體   English   中英

發出發布請求時,jQuery Ajax請求響應404

[英]Jquery ajax request response 404 when make a post request

我正在創建一個基本的好友請求功能。 這是我正在使用的功能之一,當Ajax發送發帖請求時它顯示404。如果我將代碼直接放在server.js文件中,但我正在嘗試組織代碼,則它可以工作。 有什么辦法嗎? 謝謝!

用戶通過使用電子郵件添加朋友並點擊提交時,client.pug發出ajax請求

$('#addFriend').on('click', function(ev) {
ev.preventDefault();
var searchByEmail = $('#searchByEmail').val();
$.ajax({
    type: 'POST',
    url: '/add',
    contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
    data: {
        email: searchByEmail
    },
    success: function(data) {
        console.log('success');
    }
});
document.getElementById("searchByEmail").value = "";
$('#userModal').modal('hide'); });

控制器/ friend.js

 const express = require('express');
 const app = express();
 const User = require('../models/user');
 const bodyParser = require('body-parser');

 var friendRequest = function() {
    app.post('/add', function(req, res) {
        var requestToEmail = req.body.email;
        console.log(requestToEmail);
        User.findOne({
            email: requestToEmail
        }, function(err, email) {
            if (!email) {
                console.log('cannot find the email', err);
                return res.send(err);
            }
            /*
            Add into database
            Display the friend list
            */
         })
     });
 } // End friend request

 module.exports = friendRequest;

server.js包含並使用該模塊

const friendInvite = require('./controllers/friend');
app.use('/friend', friendInvite);

文件結構

- server.js
- controllers
  - friend.js
- views
  - client.pug

嘗試如下更改controllers/friend.js上的代碼:

const express = require('express');
const app = express();
const User = require('../models/user');
const bodyParser = require('body-parser');

var friendRequest = function() {
app.post('/add', function(req, res) {
    var requestToEmail = req.body.email;
    console.log(requestToEmail);
    User.findOne({
        email: requestToEmail
    }, function(err, email) {
        if (!email) {
            console.log('cannot find the email', err);
            return res.send(err);
        }
        /*
        Add into database
        Display the friend list
        */

        //add this response to client side
        res.json({ 'status': '200', 'desc': 'Success' });
     })
   });
 } // End friend request

module.exports = friendRequest;

如果數據已保存,則必須將響應發送給客戶端,這是什么符號。 也許您可以嘗試在此處檢查代碼段代碼: https//github.com/egin10/node_mongoose/blob/master/routes/student.js

我在您的app.post()中沒有看到響應
因此它將是404(未找到)。

找到用戶后,您可以做出響應。
例如,“成功”消息和朋友列表。

app.post('/add', function(req, res) {
    res.json(['success', friend list]);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM