【已解决】nodejs + Ajax 前后台交互传值的问题
发布于 10 年前 作者 heixiaoshan 29537 次浏览 最后一次编辑是 8 年前

后台接受请求方法:

 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了。

6 回复

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

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

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

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

想问问楼主如果后台res.send()向ajax传的是字符串然后前台接受的是空怎么办

@lhist 你确定传的位置对了,前端拦截对了?

回到顶部