我正在尝试通过 ajax 调用从 Django View 调用返回 JSON 响应,如下所示:
var tab = 'test';
var response = $.ajax({
url: "/" + tab + "/"
}).responseText;
alert(response);
这是我的 Django View :
if request.is_ajax() == True:
req = {}
req['html'] = '<b>This is a test</b>'
response = simplejson.dumps(req)
print response
return HttpResponse(response, mimetype="application/json")
else:
return render_to_response("ajax/pingpong.html", {'ajax': ajax})
出于某种奇怪的原因,警报框是空白的(尽管它没有说未定义)。有趣的是,$.post 和 $.getJSON 在完全相同的 URL 上工作得很好。我还在控制台上看到了预期的 JSON 输出。任何帮助将不胜感激!
最佳答案
除非我弄错了,否则 responseText
不是 $.ajax()
返回的属性。我认为你必须做这样的事情:
$.ajax({
url: "/test",
dataType: "json",
success: function(data) {
// use data
}
});
由于dataType
参数的存在,成功回调中产生的数据是一个普通的JS对象。如果您不指定dataType
,您将获得包含服务器返回的原始内容的字符串。
关于jquery - 为什么我的 Django jQuery.ajax 响应为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1334221/