来自Python json.dumps的JSON响应

时间:2014-06-03 16:23:27

标签: javascript python json django

我正在尝试将编码为JSON的Django HttpResponse发送给Javascript。

的Python:

response_data = {}
response_data['status'] = 'incomplete'
return HttpResponse(json.dumps(response_data), content_type="application/json")

Jquery的:

function auth_request(){
  $.ajax({
    url: AUTH_ENDPOINT + "myid0001",
    context: document.body,
    success: function(response){

      console.log(response);
      console.log(response.status);
      if(response.status == "incomplete"){
        //do something here
      }

    }
  }
 });
}

控制台为第一个控制台日志输出{"status": "incomplete"},为访问状态元素的console.log函数输出undefined

我尝试使用JSON.parse(response),但收到错误

jquery.js文件中的

Uncaught SyntaxError: Unexpected token a我认为该文件表明该对象已经是JSON对象。但是,如果我检查对象的类型,它会显示字符串。如何访问响应JSON对象的元素?

2 个答案:

答案 0 :(得分:0)

当收到Json时,你需要将Json解析回JS对象。否则,它只是文字。

如果你在Ajax调用中指定dataType: "json",jQuery会为你做这件事。

答案 1 :(得分:0)

我找到了解决方案。事实证明我的Django设置返回了一些额外的字符串项,所以当我尝试设置dataType时:" json" (正如@Daniel Roseman建议的那样)或者在jQuery函数中或者使用JSON.parse(响应)我收到了一个错误。我能够删除额外的字符串并且它正常工作。