이러한 질문 중 몇 가지를 보았지만 솔루션을 구현하려고 시도했지만 저에게 효과적이지 않았습니다.QueryDict은 항상 AJAX POST에서 비어 있습니다.
POST를 사용하여 장고보기에 기본 AJAX 요청을 보내려고합니다. 여기 내 JQuery와 있습니다 :
$('#save-button').click(function() {
var names = ['BLOGGS Joe', 'SMITH John'];
data = JSON.stringify(names);
$.ajax({
"contentType": "application/json; charset=utf-8",
"data": data,
"url" : "/ajax/myteam/save/",
"type": "POST",
"success": function(response) {
}
});
});
그리고 여기 내 장고이다 :
def myteam_save(request):
if request.method == 'POST':
if request.POST:
print 'Hurray'
else:
print 'Boo'
response = HttpResponse(json.dumps({'code':'ok'}), content_type='application/json')
return response
방화범 일이 내가 의도 한대로 포스트가 이루어지고 있음을 볼 무슨 나는 검사 만 요청에서 QueryDict 객체 .POST는 항상 비어 있습니다.
내가 생각하는 csrf 토큰에주의를 기울 였고 심지어 내 설정에서 'django.middleware.csrf.CsrfViewMiddleware'를 끈 경우에도 효과가없는 것으로 보입니다.
내가 뭘 잘못하고 있니?
도움 주셔서 감사합니다.
"contentType": "application/json; charset = utf-8"'JSON을 서버에 보내지 않습니다. 또한'response'를 파싱 가능한 JSON 객체로 취급하기 위해'success function '을 알리는 것은'dataType :'json '이어야합니다. 지금까지 장고 응답에 관한 한 ... 페이지에 직접 액세스하여 출력이 나올 때까지 디버그하고 출력이 실제로 json인지 확인합니다. – Ohgodwhy
@Ohgodwhy 응답에 감사드립니다. 콘텐츠 유형은 문제를 해결하기 위해 다른 사람의 코드와 일치시키려는 시도 였고 변경을 잊어 버렸습니다. 직접 페이지에 액세스하면 무슨 뜻입니까 (바보 같은 질문이라면 죄송합니다)? – lac