2013-03-12 11 views
5

Jestem nowy na kręgosłup, ale napisałem podstawowy model i podczas próby pobrania danych dla mojego modelu. Wiem, że serwer zwraca dane, ale pobieranie wywołuje wywołanie zwrotne błędu.Jak znaleźć błąd generowany przez pobranie kręgosłupa

W porządku, ale nie wiem, jak znaleźć błąd.

Oto odpowiedni kod:

mUser = Backbone.Model.extend({ 
    urlRoot: CURRENT_URL+'user', 
    defaults: { 
     name: '', 
     age: 22, 
     email: '' 
    }, 
    initialize: function(){ 

    } 
    }); 

    user = new mUser({'id':1}); 

    var x = user.fetch({ 
    error: function(model, xhr, options){ 
     alert('Error on fetch') 
     console.log(xhr.responseText); 
    }, 
    success: function(model, response, options) { 
     alert(user.toJSON()); 
    } 
    }) 
    console.log('x email',x.email) 

Jak już wspomniano, responseText ma danych spodziewam się zobaczyć z serwera, który jest:

{ 'id': '1', "name": "joe", "age": "25", "email": "[email protected]"}

Może powinienem wspomnieć, że robię to w ramach aplikacji na Androida PhoneGap . Nie sądzę, że ma to znaczący wpływ na problem, który mam, ale ogranicza moje opcje debugowania.

+0

czy sprawdziłeś kod statusu HTTP? – soulcheck

+0

Serwer wysyła 200. Powinienem był o tym wspomnieć. –

+0

jaka jest wartość CURRENT_URL i jak monitorujesz zgłoszenia? – soulcheck

Odpowiedz

13

Prawdopodobnie otrzymujesz parsererror, gdy jQuery spróbuje przeanalizować odpowiedź JSON z twojego serwera. Aby sprawdzić, czy otrzymujesz numer parsererror, dodaj wywołanie zwrotne complete i sprawdź parametr textStatus. na przykład

user.fetch({ 
    complete: function(xhr, textStatus) { 
    console.log(textStatus); 
    } 
}); 
+0

Kiedy dodałem to, wartość, którą otrzymałem, dotyczyła textStatus był po prostu "błąd". Dostałem 200 z serwera. W moim przypadku problem polegał na tym, że właśnie ładowałem stronę z pliku: // i wywołując usługę REST przez http: //. –

Powiązane problemy