2011-12-29 17 views
0

私のAjax投稿機能に次のビューを使用していますが、呼び出しが繰り返し失敗しています。私はここで何が間違っているように見えるかもしれません。誰もがDjangoビューでAjax投稿にエラーが発生する

def interview(request): 
    if request.is_ajax(): 
     if request.method == 'POST': 
      name = request.POST.get('name', False) 
      email = request.POST.get('email', False) 
      skype_id = request.POST.get('skype_id', False) 
      phone = request.POST.get('phone', False) 
      time_slot_1 = request.POST.get('time_slot_1', False) 
      time_slot_2 = request.POST.get('time_slot_2', False) 
      time_slot_3 = request.POST.get('time_slot_3', False)   

      recipients = ['[email protected]'] 

      subject = 'Interview Appointment' 
      message = "The following person has registered for interview \n Name: %s \n Email: %s \n Skype Id: %s \n Phone: %s \n Slot-1: %s \n Slot-2: %s \n Slot-3: %s" % (name, email, skype_id, phone, time_slot_1, time_slot_2, time_slot_3) 

      from django.core.mail import send_mail 
      send_mail(subject, message, sender, recipients) 
      return_message = "Sent mail" 
      return HttpResponse(return_message,mimetype='application/javascript') 

私のjavascriptのも非常に簡単ですが、私は、エラーメッセージに

var email_val = $("#emailp").val(); 
var skype = $("#skypeId").val(); 
var phone = $("#phone_no1").val(); 
var t1 = $("#time_slot1").val(); 
var t2 = $("#time_slot2").val(); 
var t3 = $("#time_slot3").val(); 

$.ajax({ 
    type: "POST", 
    url: "/interviews/interview_form/", 
    data: { 
     'name': name_val, 
     'email': email_val, 
     'skype_id': skype, 
     'phone': phone, 
     'time_slot_1': t1, 
     'time_slot_2': t2, 
     'time_slot_3': t3, 
    }, 
    success: function(){ 
     alert("call successful"); 
     $('#complete').html("Form has been Submitted"); 
     }, 
    error: function(){ 
     alert("call failed"); 
     $('#error').html("Form could not be Submitted! Please try again"); 
     }, 

}); 

を取得していますなぜ私はどれ洞察力は歓迎されているかわからない、それを指摘することができます。

答えて

0

XSS攻撃を防止するには、CSRFトークンも送信する必要があります。あなたのコードで最も簡単な方法は、data辞書にcsrfmiddlewaretoken: '{{ csrf_token }}'を追加することです。また、CSRFトークンが利用できるように、ビューがcontext_instanceを返すようにしてください。

+0

私はここで解決法を使用していますので、 'csrf token 'が問題を引き起こすとは思わないと思います。私は絶対に上手く働く別の非常に似たような見方をしている – Sachin

関連する問題