jQuery에서 Django에 POST 요청을 보내고 꽤 간단한 작업을 수행하고 있습니다. 아주 간단한 시나리오에서 이상한 오류가 발생했습니다. 나는 다음과 같은보기 기능이 있습니다간단한 JSON에 jQuery parsererror가 Django에서 반환되었습니다.
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
을 설정하지 않으면 모든 것이 정상적으로 작동합니다. 문제는 jQuery를 다시 구문 분석하지 않고도 JSON을 반환하고 싶습니다. 아무도 내 실수를 여기에서 발견 할 수 있습니까? 나는 그것을 볼 수없는 것 같습니다.
감사합니다. JS {success : true}가'{ 'success': true}'와 같기 때문에 이것이 필요하다는 것을 알지 못했습니다. –