Python json.dumps 的 JSON 响应
我正在尝试将一个用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"}
,而第二次打印了 undefined
,这是因为我在尝试访问状态元素时出现了问题。
我试过用 JSON.parse(response)
来解析,但出现了一个错误:
Uncaught SyntaxError: Unexpected token a
,这个错误是在jquery.js文件中出现的,我觉得这说明对象已经是一个JSON对象了。不过,当我检查这个对象的类型时,它显示的是字符串。那我该怎么访问这个响应的JSON对象里的元素呢?
2 个回答
0
我找到了问题的解决办法。原来是我的Django设置返回了一些多余的字符串项,所以当我尝试设置数据类型为“json”(就像@Daniel Roseman建议的那样),或者在jQuery函数中使用JSON.parse(response)时,就出现了错误。后来我把多余的字符串去掉了,结果就正常工作了。
0
当你收到Json数据时,需要把它转换回JavaScript对象。否则,它只是普通的文本。
如果你在Ajax调用中指定 dataType: "json"
,jQuery会帮你自动处理这个转换。