jquery가 있으면 바닐라 자바 스크립트를 대신 사용하려고합니다. $ .post를 사용하여 아약스 호출을 만드는 데 아무런 문제가 없지만 바닐라 자바 스크립트를 사용할 수는 없습니다.via ajax/javascript via django보기 빈 쿼리 세트 인쇄
$(document).ready(function() {
$('#addAssignment').click(function() {
$('#addAssignmentModal').modal('toggle');
});
$('#submitAssignment').click(function() {
if(checkModal()){
var assignment = {
title: $('#newAssignmentTitle').val(),
type: $('#assignmentSelection').val(),
date: $('#newAssignmentDate').val(),
details: $('#newAssignmentDetails').val()
}
console.log(assignment);
submitAssignment(assignment);
}
});
});
function submitAssignment(assignment) {
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
//Do stuff
}
};
request.open("POST", '/data/api/create-assignment/', true);
request.setRequestHeader('X-CSRFToken', cookies['csrftoken']);
//assignment is equal to: {title: "Title", type: "Homework", date: "02/18/2017", details: "Detais"}
request.send(JSON.stringify(assignment));
}
나는 시도하고 내 Djano보기에서 데이터를 인쇄, 그것은 빈의 검색어마다 시간을 출력한다 : 이것은 내 아약스 호출입니다.
def createAssignment(request):
if request.method == 'POST':
print(request.POST) # this prints an empty queryset
# assignment = Assignments()
# assignment = request.POST.get('assignment')
# assignment.save()
data = {}
data['status'] = "Success"
return HttpResponse(json.dumps(data), content_type="application/json")
else:
data = {}
data['status'] = "Data must be sent via POST"
return HttpResponse(json.dumps(data), content_type="application/json")
어떻게 데이터를 준비하고 올바르게 수신합니까?
업데이트 :
이 작업을 수행 할 수있었습니다. 아약스 호출은 그대로 유지됩니다.
{ '세부 정보':
body_unicode = request.body.decode('utf-8') body = json.loads(body_unicode) print(body)
인쇄 본문은 다음을 제공합니다 : 내 장고보기에서 데이터를 인쇄하기 위해, 나는 다음과 같은 코드 사용 '여기에 몇 가지 세부 사항은'을 '제목 ''제목 ','날짜 : '타입'02// 2,017 18 ''숙제 '}