开发者

Debugging jQuery AJAX response: what I'm doing wrong?

$.ajax({
    typ开发者_如何学Goe: 'POST',
    url: 'place/add',
    data: {
        lat: lat,
        lng: lng,
        name: name,
        address: address,
        phone: phone,
        review: review,
        category: category
    },
    success: function(data) {
    alert(data);
    alert(data.id);
    // ......
});

The first alert gives:{"id":"2","success":true}, but the second: undefined


You need to specify your anticipated returned data type as JSON:

$.ajax({
    type: 'POST',
    dataType: 'json', // specifies the return type
    url: 'place/add',
    data: {
        lat: lat,
        lng: lng,
        name: name,
        address: address,
        phone: phone,
        review: review,
        category: category
    },
    success: function(data) {
        alert(data);
        alert(data.id);
        // ......
    }
});


An especially useful addition, if you run multiple ajax calls is $.ajaxSetup

$.ajaxSetup({
  type: 'post',
  dataType: 'json'
});

Any subsequent ajax calls will use these as the defaults.


You have to specify dataType: 'json' or eval returned data yourself like this var data = eval('(function(){return '+data+'})()');

BTW trust jQuery - use dataType: 'json' if you can.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜