搜索

首页  >  问答  >  正文

node.js - express怎么接收前端ajax请求?

1.前端:

  $.ajax({
        type: "post",
        url: 'back.js',
        data: "123",
        success: sssqRverOnSuccess
    });
    
    function sssqRverOnSuccess(data) {
    console.log(data);
}

2.后端:

app.post('/back.js', function(err, req, res, next) {
    res.end('123');
});

3.back.js的内容

收到请求

4.浏览器控制台:
POST http://localhost:3000/back.js 404 (Not Found)

5.服务端控制台
POST /back.js 404 32.698 ms - 1257

问题:
1.为什么我用get请求可以成功,也就是浏览器控制台输出 “收到请求”。而post不能?

2.url只是一个标识,文件可以不存在(我昨天提的问题里告诉我的https://segmentfault.com/q/10...)。但是为什么会返回我的back.js的内容呢?难道xmlhttprequest和jquery ajax的url代表不一样?

大家讲道理大家讲道理2788 天前468

全部回复(3)我来回复

  • PHPz

    PHPz2017-04-17 16:02:33

    可以尝试一下

    ajax({
        type:post,
        url:"/back.js"
        success:function(data){console.log(data)}
    })
    
    app.post('/back.js', function(req, res, next) {
        res.send('123');
    });
    

    我之前的server都是这样写的

    回复
    0
  • ringa_lee

    ringa_lee2017-04-17 16:02:33

    兄弟,你的express没跑起来,不要被PHP误导,nodejs跑起来后,可以理解为 Apache和PHP的组合。你访问的back.js只是静态文件,虽然nodejs也可以配置成fcgi脚本方式响应内容,但那是绕弯路和不科学的做法!建议你按教程走一遍express入门教程,了解APP和路由的概念!

    回复
    0
  • 迷茫

    迷茫2017-04-17 16:02:33

    我以前学的时候写的一段,现在用koa了,express都忘没了
    req.body就是post进来的东西

    router.post('/doCreate', function(req, res, next) {
        var data = new article.articleModel({
            name : req.body.name,
            cat : req.body.cat,
            author : req.body.author,
            time : moment(Date.now()).format("YYYY-MM-DD HH:mm:ss"),
            desc : req.body.desc,
            content : req.body.content
        });
    
        data.save(function (err, doc) {
          if (err) {
            console.log(err);
            res.redirect('/article/fail');
          } else {
            console.log(doc + '数据保存成功');
            res.redirect('/admin/article/list');
          }
        });
    });

    回复
    0
  • 取消回复