当前位置: 首页 > news >正文

gin: 判断是否ajax请求

一,代码

controller:

//得到用户信息
func (ic *MediaController) User(c *gin.Context) {if c.Request.Header.Get("X-Requested-With") == "XMLHttpRequest" {c.JSON(http.StatusOK, gin.H{"name": "王富贵",})} else {c.HTML(200, "user.html", gin.H{"Title": "Gin 模板示例","Message": "姓名:王富贵",})}}

user.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>{{ .Title }}</title><link rel="stylesheet" href="/static/css/global.css"></head>
<body>
<h1>{{ .Message }}</h1>
</body>
</html>

detail.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>{{ .Title }}</title><link rel="stylesheet" href="/static/css/global.css"><script src="/static/js/jquery-3.7.1.min.js"></script>
</head>
<body>
<h1>{{ .Message }}</h1>
<button onclick="getName()">获取当前用户名字</button>
<script>function getName() {var paramsData = {a:1,b:2}var url = "/media/user";$.ajax({type: 'GET',url: url,data: paramsData,dataType: 'json',success: function(data) {console.log("成功");console.log(data);if (data.hasOwnProperty('name')) {alert('name:'+data.name)} else {alert('数据获取失败')}},error: function(jqXHR, textStatus, errorThrown) {console.log("失败");console.error('Error: ' + textStatus + ' - ' + errorThrown);}});}</script>
</body>
</html>

 

二,运行结果:

ajax请求:

image

非ajax请求,直接访问

image

 

http://www.jsqmd.com/news/347/

相关文章:

  • gin: 静态文件
  • 详细介绍:【论文精读】基于YOLOv3算法的高速公路火灾检测
  • 产品设计
  • An Empirical Study on Commit Message Generation using LLMs via In-Context Learning 论文笔记
  • 实用指南:人工智能学习:Transformer结构中的编码器层(Encoder Layer)
  • vcpkg 安装依赖
  • Java03课前问题列表
  • JavaScript错误处理完全指南:从基础到自定义错误实战
  • 1、论文准备
  • Jetpack Navigation - 在 Fragment 中跳转到 Activity(4 种方式) - 详解
  • PION 游击
  • 神经网络构成框架-理论学习 - 指南
  • Web3 开发者修炼全图谱:从 Web2 走向 Web3 的实用的系统性学习指南
  • 强化学习之父 Richard Sutton: 如今AI正进入“经验时代” - 指南
  • Java 注解 - 实践
  • 安规对变压器的绝缘系统要求
  • 嵌入式笔记系列——UART:TTL-UART、RS-232、RS-422、RS-485 - 指南
  • 实用指南:医院高值耗材智能化管理路径分析(下)
  • Flutter应用自动更新系统:生产环境的挑战与解决方案
  • .NET Core中使用SignalR
  • Django + Vue3 前后端分离工艺实现自动化测试平台从零到有系列 <第一章> 之 注册登录完成
  • 实用指南:【保姆级教程】TEXTurePaper运行环境搭建与Stable Diffusion模型本地化
  • 实用指南:修复Conda连接异常:CondaHTTPError HTTP 000 CONNECTION FAILED故障排除指南
  • 高级数据结构手册
  • 3634501 - [CVE-2025-42944] Insecure Deserialization vulnerability in SAP Netweaver (RMI-P4)
  • 【无人艇协同】基于matlab面向海事安全的双体无人艇分布式协同任务规划(目标函数:总时间满意度)【含Matlab源码 14161期】博士论文 - 教程
  • 实用指南:Unity 打包 iOS,Xcode 构建并上传 App Store
  • 实用指南:GitHub 热榜项目 - 日榜(2025-09-09)
  • 深入解析:【Fiora深度解析】手把手教你用固定公网IP搭建专属聊天系统!
  • 使用JavaScript和CSS创建动态高亮导航栏