2016-08-01 8 views
1

Mein Kolben App hat Code zuzugreifen versuchen, die Folgendes zurück:'Nicht definiert', wenn json Antwort

return json.dumps({'status': 'OK','url': 'www.blahg.com'})    

Mein JavaScript-Code wie folgt aussieht:

$(function() { 
    $('#mainbutton').click(function() { 
     $.ajax({ 
      url: '/buttonclick', 
      data: $('form').serialize(), 
      type: 'POST', 
      success: function(response) { 
       console.log(response); 
       console.log(response.url); 
      }, 
      error: function(error) { 
       console.log(error); 
      } 
     }); 
    }); 
}); 

Das erste Konsolenprotokoll sieht richtig: {"status": "OK", "url": "www.blahrg.com"}, aber wenn ich versuche, auf den Eintrag url zuzugreifen, bekomme ich 'undefiniert' als Ausgabe. Was mache ich falsch?

+0

Bist Du sicher es ist kein String ' '{“ status ":" OK "," url ":" www.blehrg.com "}? Versuchen Sie 'var response = JSON.parse (response);' –

+0

Ist es möglich, dass 'response' eine JSON-Zeichenfolge ist? Versuchen Sie, 'JSON.parse' zuerst zu verwenden – stackoverfloweth

+1

Duplikat von [Wie auf JSON-Objektname/-wert zugreifen?] (Http://stackoverflow.com/questions/10895306/how-to-access-json-object-name-value) – davidism

Antwort

3

Sie auch dataType verwenden können jQuery Parsen es für Sie zu haben:

$(function() { 
    $('#mainbutton').click(function() { 
     $.ajax({ 
      url: '/buttonclick', 
      data: $('form').serialize(), 
      type: 'POST', 
      dataType: 'json', // this bit here 
      success: function(response) { 
       console.log(response); 
       console.log(response.url); 
      }, 
      error: function(error) { 
       console.log(error); 
      } 
     }); 
    }); 
}); 
6

Sie haben nicht die JSON analysiert:

success: function(data) { 
    var response = JSON.parse(data); 
    console.log(response); 
    console.log(response.url); 
}