【已解决】nodejs + Ajax 前后台交互传值的问题
发布于 7个月前 作者 heixiaoshan 857 次浏览

后台接受请求方法:

 router.get('/edit/:_id', function (req, res) {
//  var currentUser = req.session.user;
    Mcontact.get(req.params._id, function (err,edocs) {
      if (err) {
        req.flash('error', err); 
//      return res.redirect('/mcontact');
      }
      console.log(edocs);
       res.send(edocs);
    });
  });

后台输出的结果:

{ _id: 53bad7824784282c3e000002,
  mcname: '新浪',
  mcpassword: 'qweqweqwe',
  mcemail: 'abb[@sina](/user/sina).com',
  tag: '网络',
  user: 'heishan',
  update_at: Tue Jul 08 2014 01:23:14 GMT+0800 (中国标准时间),
  create_at: Tue Jul 08 2014 01:23:14 GMT+0800 (中国标准时间) }

前台请求与接收结果:

$("#editcontact").click(function(){
             $.ajax({
                 type: "get",
                 url: "/mcontact/edit/"+$("#editcontact").data('mcid'),
//               data: {email:$("#email").val(), password:$("#password").val()},
    //           data: {"password":"McLaughlin","email":"aaaa"},
                 dataType: "json",
                 success: function(data){
                         if(data){  
                            var a=$.parseJSON(data);
                                 alert(a);
                             } else{  
                                  alert('失败');
                             }                      
                          }
             });
        });

输出a的结果为null,两者之间如何才能正确的接收值? 直接输出data是一个object对象 ###楼主干了一件蠢事,直接用 var a=$.parseJSON(data); 去接收值了。正常情况直接可以用 alert(data._id)这样就OK了。

4 回复

将res.send换成res.json看看?

额。解决了。是我多此一举了。var a=$.parseJSON(data); 这里不用转换,直接data._id就可以了

= = ALERT不能输出数组。。 ALERT(Array)的结果都是object PASS过来的只要是数组,不需要转义的。

恩。哈哈。好多细节都不知道啊。

回到顶部