尝试访问json响应时"未定义"

the*_*man 2 javascript ajax jquery json

我的烧瓶应用程序具有返回以下内容的代码:

return json.dumps({'status': 'OK','url': 'www.blahg.com'})              
Run Code Online (Sandbox Code Playgroud)

我的javascript代码如下所示:

$(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);
            }
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

第一个控制台日志看起来是正确的:{"status": "OK", "url": "www.blahrg.com"}但是当我尝试访问该url条目时,我将'undefined'作为输出.我究竟做错了什么?

nic*_*ank 7

你还没有解析JSON:

success: function(data) {
    var response = JSON.parse(data);
    console.log(response);
    console.log(response.url);
}
Run Code Online (Sandbox Code Playgroud)


cas*_*raf 6

您还可以使用dataTypejQuery 为您解析它:

$(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);
            }
        });
    });
});
Run Code Online (Sandbox Code Playgroud)