【发布时间】:2011-11-19 21:29:48
【问题描述】:
我在这里做了一件非常简单的事情,从 jQuery 向 Django 发出 POST 请求,但对于一个非常简单的场景,我遇到了一个奇怪的错误。我有以下视图功能:
from django.views.generic.simple import direct_to_template as dto
def do_login(request):
if request.method == "POST":
return dto(request, "path/to/template.json", {
'success': False,
'cause': None
}, mimetype="text/json")
这是我的模板:
{ success : {{success|lower}}{% if cause %}, cause : {{cause}}{% endif %} }
...这是我的 jQuery:
$.ajax("/login/", { type: "POST",
data: $("#loginForm").serialize(),
success: function(data) {
console.log("login response: " + data);
},
error: function(data, stats, error) {
console.log("login fault: " + data + ", " +
stats + ", " + error);
}
});
很简单,对吧?这是我在控制台中得到的:
login fault: [object Object], parsererror, SyntaxError: Unexpected token s
这里出了什么问题?如果我没有在我的渲染方法上设置mimetype,那么一切正常。问题是,我想返回 JSON 而不必强制 jQuery 重新解析它。谁能在这里发现我的错误?我好像看不到。
【问题讨论】: