所以,我有这个简单的联系表单,Django通过向我和与我们联系的人发送电子邮件来处理。我已经编写了一个AJAX函数来处理它。唯一的是,无论我尝试什么,我都保持500身份。
我的Django(1.11)代码:
def contato(request):
if request.method == 'POST':
name = request.POST['name']
email = request.POST['email']
phone = request.POST['phone']
message = request.POST['message']
newmessage = "Mensagem recebida de {}.\nTelefone: {}\ne-mail {}\n {}".format(name, phone, email, message)
send_mail(
'Nova mensagem pelo site',
newmessage,
'PLACEHOLDER@EMAIL',
['PLACEHOLDER@EMAIL'],
fail_silently=False
)
send_mail(
'Recebemos sua mensagem!',
'Olá, {}!\nRecebemos sua mensagem e entraremos em contato em breve.'.format(name),
'PLACEHOLDER@EMAIL',
[email],
fail_silently=False
)
return HttpResponse()
这是我的AJAX请求:
form.addEventListener("submit", function(event) {
event.preventDefault();
let dadoscontato = {
name: name.value,
email: email.value,
phone: phone.value,
message: message.value,
csrfmiddlewaretoken: document.getElementsByName('csrfmiddlewaretoken')[0].value
};
fetch('/contato/', {
method: 'POST',
credentials: 'same-origin',
headers: {
"X-CSRFToken": getCookie("csrftoken"),
"Accept": "application/json",
"Content-Type": "application/json"
},
body: JSON.stringify(dadoscontato),
})
.then(function(response){
console.log(response)
return response.json();
})
.then(function(response){
alert('Mensagem enviada com sucesso!');
});
});
仅将此问题标记为已解决:
我在加载响应时必须运行.decode()
。现在一切正常。