Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点js ajax post请求_Javascript_Jquery_Node.js_Ajax_Mongodb - Fatal编程技术网

Javascript 节点js ajax post请求

Javascript 节点js ajax post请求,javascript,jquery,node.js,ajax,mongodb,Javascript,Jquery,Node.js,Ajax,Mongodb,除了节点js和AJAX POST出现错误外,节点请求无法检查表单数据是否得到正确处理,始终会转到错误函数, 检查以下AJAX节点JS代码的任何解决方案 $("#submit_btn").click(function() { $.ajax({ url: '/process_add', type: 'POST', dataType: "json", data: $('#process_form').serializeArray(

除了节点js和AJAX POST出现错误外,节点请求无法检查表单数据是否得到正确处理,始终会转到错误函数, 检查以下AJAX节点JS代码的任何解决方案

$("#submit_btn").click(function() {
    $.ajax({
        url: '/process_add',
        type: 'POST',
        dataType: "json",
        data: $('#process_form').serializeArray(),
        success:function(data) {
            alert('done');
        },
        error: function(errorThrown,data) {
            alert('Error');
        }
    });
});


router.post('/process_add', function(req, res, next) {

    var item = {
        name: req.body.name,
        content:req.body.content
    };

    mongo.connect(url, function(err, db) {
        assert.equal(null, err);
        db.collection('data_collection').insertOne(item, function(err, result) {
            assert.equal(null, err);
            console.log('Process added');
            db.close();
        });
    });
});

您需要将该api的(“/”)根添加到Ajax请求中。post有(/process\u add)提示不是该api的根,因此如果索引是根(/index/process\u add)

您的Ajax请求“/process\u add”将指向URL的根。例如,abc.com是您的域,这里的端点将是“abc.com/process\u add”。 确保你的路由器存在于应用程序中“/”的根引用中

app.js

var index = require('./routes/index');    
app.use('/',index);
routes/index.js

    router.post('/process_add', function(req, res, next) {

        var item = {
            name: req.body.name,
            content:req.body.content
        };

        mongo.connect(url, function(err, db) {
            assert.equal(null, err);
            db.collection('data_collection').insertOne(item, function(err, result) {
                assert.equal(null, err);
                console.log('Process added');
                db.close();
            });
        });
    });

快乐编码

您收到了什么错误消息?请提供更详细的主题/标题。我不确定,但我认为您需要通过localhost和port传递整个URL。我认为您不能在服务器端使用jQuery。改用http.request。仔细检查后,您似乎混淆了前端和后端代码。请您将它们清楚地分开,并按照其他人的建议包含错误消息好吗?因此,如果路由器是使用
app.use('/index',router)安装的,则
url
将是
/index/process\u add
,而不是
/process\u add
。如果不这样做,它将查找应用程序。使用('/process\u add')我在routes文件夹的上下文中使用root。请记住,如果你为你的应用程序发送单独的JS文件,你的“根”频道将会改变