2017-02-12 2 views
0

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 ''숙제 '}

답변

0

body_unicode = request.body.decode ("UTF-8") 체 = JSON .loads (body_unicode) 인쇄 (본문)