jQuery ajax

jQuery ajax

参数信息

  • method:类型,"POST"或者"GET",默认是"GET"。
  • url:发送请求的地址。
  • data:是一个对象,连同请求发送到服务器的数据
  • dataType:预期服务器返回的数据类型。如果不指定,jQuery将自动根据HTTP包含的MIME信息来智能判断,一般我们采用json个数,可以设置为"json"。
  • success:是一个方法,请求成功后的回调函数。传入返回后的数据,以及包含成功代码的字符串。
  • error:是一个方法、请求失败时调用此函数。传入XMLHttpRequest对象。

使用方法

$.ajax({
            url:'请求地址',
            method:'post',
            data:json格式数据,
            dataType: "json",
            success:function (data) {
                console.log(data)
            }
        });

事例(登录用户名检测ajax+go后端)

html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
    </style>
</head>
<body>
<div>
    <label for="">用户名:</label><input type="text" id="user" onblur="userfor()"><span id="userinfor"></span><br>
</div>
<script type="text/javascript">
    function userfor() {
        var user =$('#user').val();
        $.ajax({
            url:'/login',
            method:'post',
            data:{user:user},
            dataType: "json",
            success:function (data) {
                $('#userinfor').css("color","red");
                $('#userinfor').html(data.status)
            }
        });

    }
</script>
</body>
</html>

go语言

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

// 定义接收数据的结构体
type User struct {
	// binding:"required"修饰的字段,若接收为空值,则报错,是必须字段
	Username string `json:"user" form:"user"`
}

func Hello(c *gin.Context) {
	switch c.Request.Method {
	case http.MethodGet:
		c.HTML(http.StatusOK, "login.html", nil)
	case http.MethodPost:
		//// 声明接收的变量
		var login User
		//// Bind()默认解析并绑定form格式
		//// 根据请求头中content-type自动推断
		err := c.ShouldBind(&login)
		if err != nil {
			c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
			return
		}
		if login.Username == "user"{
			c.JSON(http.StatusOK, gin.H{"status": "用户名重复"})
			return
		} else {
			c.JSON(http.StatusOK, gin.H{"status": "ok"})
			return
		}
	default:
		c.JSON(http.StatusOK,gin.H{
			"status":"ok",
		})
	}
}

func main() {
	r := gin.Default()
	r.LoadHTMLGlob("templates/*")

	r.Any("/login", Hello)
	r.Run(":8000")
}

上一篇:[Go] gin 解决: accept4: too many open files


下一篇:Go Web项目搭建-Gin+GORM连接MySQL数据库