node.js - express怎么接收前端ajax请求?
大家讲道理
大家讲道理 2017-04-17 16:00:33
0
3
472

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代表不一样?

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
PHPzhong

可以尝试一下

ajax({
    type:post,
    url:"/back.js"
    success:function(data){console.log(data)}
})

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

我之前的server都是这样写的

左手右手慢动作

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

迷茫

我以前学的时候写的一段,现在用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');
      }
    });
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板