2009-11-08 19 views
2
$.ajax({ 
    type: '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); 
    // ...... 
}); 

第一個提醒給: { 「ID」: 「2」, 「成功」:真正}調試jQuery的AJAX迴應:我在做什麼錯

但第二:未定義

回答

11

您需要指定您的預期返回的數據類型爲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); 
     // ...... 
    } 
}); 
+0

其他有效的返回類型包括** xml **,** html **,** script **,** jsonp **和** text **。默認返回類型是* html或xml *,因此最好指定您需要的returnType以避免開銷。 – 2009-11-09 18:31:47

0

您必須指定dataType: 'json'或EVAL自己返回的數據像這樣var data = eval('(function(){return '+data+'})()');

BTW信任jQuery - 如果可以,使用dataType: 'json'

1

一種特別有用此外,如果你運行多個Ajax調用是$ .ajaxSetup

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

任何後續Ajax調用將使用這些爲默認值。