我在Django中使用jQuery進行AJAX調用。一切似乎都工作得很好,除了ajax調用沒有被返回,因爲成功函數沒有被執行。這是我的jQuery文件AJAX調用不返回 - 成功函數沒有在Django中執行
$.ajax({
type: "POST",
url: "/contact_us/",
data: {
'name': name_val,
'email': email_val,
'message': message_val,
'subject': subject_val,
'cc': cc_val,
},
success: function()
{
// display success message and reset values in the form fields
$("#reply-message").html('Your message has been sent!').fadeOut(3000, function() {});
// clear the fields
$("#contact-name").val("");
$("#contact-email").val("");
$("#contact-message").val("");
$("#contact-subject").val("");
}
});
我不知道該怎麼視圖返回一個AJAX調用所以現在我只返回一個假消息,但它不工作。這裏是views.py
def contact_us(request):
if request.is_ajax():
if request.method == 'POST':
name = request.POST.get('name', False)
email = request.POST.get('email', False)
message = request.POST.get('message', False)
subject = request.POST.get('subject', False)
cc = request.POST.get('cc', False)
recipients = ['[email protected]']
if cc:
recipients.append(email)
from django.core.mail import send_mail
send_mail(subject, message, email, recipients)
return_message = "Sent mail"
return Httpresponse(return_message)
return_message是假的,我甚至不想在我的迴應中處理它。但爲什麼阿賈克斯呼籲不回來,休息一切工作正常,我也收到郵件。
我剛剛意識到,我寫了一個非常愚蠢的錯誤,我寫了Httpresponse,而它必須是HttpResponse。現在它工作得很好
我沒有在成功調用中返回任何數據,它就像當函數掉下來時那麼我想做成功任務 – Sachin
我指的是你的django函數,HttpResponse(return_message)是無效的xml。因此,jquery ajax調用不會觸發您的成功函數,因爲http響應類型設置不正確。你可以改變你的ajax調用期望的文本類型,然後它會激發你成功。還掛鉤錯誤功能,看看他們告訴你什麼。 –
由於我上面編輯過的問題不是用xml,那是我犯了一個錯誤。不管怎樣,非常感謝幫助 – Sachin