javascript - Sweet Alert 未显示,但响应消息显示但在新浏览器中打开。我该如何解决这个问题?
问题描述
这是表单的 html 代码
{% extends 'frontend/master/master.html' %}
{% block content %}
<h1>contact page</h1>
<hr>
<form action="" method="POST">
{% csrf_token %}
{{my_form}}
<br>
<button id="send_mail_ajax" class="btn btn-success">Send</button>
</form>
{% endblock %}
来自 custom.js 的代码一切正常,但是当我想显示来自 django 库的 json 响应时,它会在新选项卡中打开
$(document).ready(function() {
$('#send_mail_ajax').on('click', function (event) {
event.preventDefault();
let sender = $('#id_sender').val();
let subject = $('#id_subject').val();
let message = $('#id_message').val();
let data = { sender: sender, subject: subject, message: message };
$.ajax({
type: 'post',
url: 'http://127.0.0.1:8000',
data: data,
csrftoken= jQuery("input[name=csrfmiddlewaretoken]").val(),
success: function (response) {
Swal.fire(
'Mail',
response.message,
'success'
)
}
})
});
});
来自views.py的代码
我也尝试使用装饰器库中的@csrf_exempt,但它显示403被禁止。
def contact(request):
if request.method == 'POST':
sender = request.POST.get('sender')
subject = request.POST.get('subject')
message = request.POST.get('message')
send_mail(subject, message, sender, ['razeevstha002@gmail.com'])
resData = dict()
resData['message'] = "Successfully Send"
return JsonResponse(resData)
else:
data = {
'my_form':ContactForm
}
return render(request, 'frontend/pages/contact/contact2.html',data)
解决方案
推荐阅读
- kotlin - 在 Kotlin 中增加整数 Map 值
- java - 计算词频
- python - 转换表以在 Python 中显示标准差和平均值
- assembly - MIPS 汇编:如何将字符串读取为 ascii 字符并将其放入数组中
- c++ - 为什么模型不显示在屏幕中央?
- javascript - 更改图像时更改选择选项的 JavaScript
- sql - 为什么它需要在我的列名周围加上引号?
- javascript - 在同一个 onclick 事件中执行两个函数,但只运行一次
- javascript - 分配给地图内的对象
- swift - TVOS - 使用 UISearchController 时后台应用程序上的键盘颜色更改