【已解决】nodejs + Ajax 前后台交互传值的问题
后台接受请求方法:
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 你确定传的位置对了,前端拦截对了?