ajax异步加载
AJAX异步加载
异步加载例子,注释描述
定义
局部刷新技术,不需要整个网页刷新。
AJAX是一种异步的客户端和服务端进行交换数据的方法,表现是不重新加载页面的情况下,后台与服务器进行了数据交互,再部分的更新页面。
jQuery框架ajax使用
html
<!DOCTYPE html>
{% load static %}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="{% static 'js/login.js' %}"></script>
<body>
<div class="container">
<h2>登录</h2>
<form method="post" id="login-form">
{% csrf_token %}
<label for="username">用户名:</label>
<input type="text" id="username" name="username" >
<label for="password">密码:</label>
<input type="password" id="password" name="password" >
<input type="submit" value="登录">
</form> </div>
</body>
</html>
Django的templates格式文件。
js
$(document).ready(function() {
$("#login-form").submit(function(event) {
event.preventDefault(); //阻止事件继续进行,防止浏览器执行事件的默认操作。
var username = $("#username").val();
var password = $("#password").val();
$.ajax({
url: '../login_post_view', // 替换为你的登录视图的URL
type: 'POST',
data: {
'username': username,
'password': password
},
success: function(data) {
var message = data.Success; //从视图返回的json数据
if (username == "" || password == ""){
alert("用户名密码不能为空");
}else{
if (message == "0") {
alert("用户名密码错误");
} else {
alert("登录成功");
window.location.href = "../index_view";
}
}
},
error: function(xhr, status, error) {
// 处理Ajax请求错误
console.log("AJAX请求出错:");
console.log("状态码:" + xhr.status);
console.log("状态消息:" + xhr.statusText);
console.log("错误信息:" + error);
}
});
});
});
后台数据(Django为例)
def login_post_view(request):
message = {"Success": ""}
username = request.POST.get("username")
password = request.POST.get("password")
# 验证用户名密码正确
try:
my_user = MyUser.objects.get(username=username, password=password) # 单个记录
message["Success"] = "1"
request.session["user_name"] = username
except MyUser.DoesNotExist:
message["Success"] = "0"
return JsonResponse(message)
返回json数据。前端接受Success的值
posted on 2024-10-15 16:07 ZanderChan 阅读(16) 评论(0) 收藏 举报
浙公网安备 33010602011771号