Layui表单提交如何实现带有Token的安全请求校验

老萱君_6106

老萱君_6106

2026-04-30

531人浏览

原创

layui表单提交不自动携带token,必须在form.on('submit')中阻止默认行为,用layui.admin.req或$.ajax手动发请求并显式设置headers;token应存于layui.data('platform'),读取需匹配存储位置,且必须走请求头而非data字段。

layui 表单提交本身不自动携带 token,必须手动注入到请求头或参数中;直接用 form.on('submit') 发起的原生 submit 事件不会走 layui.admin.req 或任何封装逻辑,token 不会自动附带——这是绝大多数人踩坑的起点。

form.on('submit') 提交时如何加 Token 到请求头

原生表单提交(form.on('submit(#formId)'))默认是同步 HTML 表单提交,不经过 JS 拦截,更不会自动塞 token。要实现带 token 的安全请求,必须阻止默认行为,改用 layui.admin.req 或 $.ajax 手动发请求。

  • 在回调里第一时间调用 return false 阻止页面跳转和默认提交
  • 从 layui.data('platform') 或 sessionStorage.getItem('token') 取 token(注意:Layui Admin 默认存于 platform 表名下,key 是 access_token)
  • 使用 layui.admin.req 发送,它会自动处理 headers、超时、错误跳转等;若不用 admin 模块,则用 $.ajax 并显式设置 headers: { Authorization: 'Bearer ' + token }
  • 后端若要求 token 字段而非 Authorization,headers 写成 { token: token } 即可,但需前后端约定一致

示例:

form.on('submit(save)', function(data){
  const token = layui.data('platform').access_token;
  if (!token) {
    layer.msg('登录已失效,请重新登录');
    return false;
  }
  layui.admin.req({
    url: '/api/user/save',
    type: 'POST',
    data: data.field,
    headers: { Authorization: 'Bearer ' + token },
    done: function(res) {
      if (res.code === 0) {
        layer.msg('保存成功');
      }
    }
  });
  return false; // 必须返回 false,否则仍会触发原生提交
});

为什么不能在 form 标签里用 lay-headers?

lay-headers 是 table、upload、treeTable 等组件的专属属性,form 组件不支持该属性——Layui 的 form 模块没有解析 lay-headers 的逻辑,写了也无效。

jQuery金融借款单提交表单
jQuery金融借款单提交表单

jQuery金融借款单提交表单,包含出借金额和日期的选择,且自动计算利息,非常的简单方便。

下载
  • 试图在 <form lay-headers="{token:xxx}"></form> 中写死 token,完全不起作用
  • 哪怕 token 是动态模板变量(如 #{token}),Layui 的 form 渲染也不做任何替换或注入
  • 唯一可控入口就是 form.on('submit') 回调里的 JS 逻辑

Token 存哪里?取的时候容易出什么错?

Token 存储位置和读取方式不匹配,是 401 错误最常见原因。Layui Admin 默认用 layui.data('platform', {key: 'access_token', value: token}) 存,但很多开发者误用 localStorage.token 或 sessionStorage.getItem('token') 去读,结果读不到。

  • 确认你用的是 Layui Admin 还是纯 Layui:Admin 版统一走 layui.data('platform');纯 Layui 需自己存取,推荐 sessionStorage(关页即清)
  • 登录后立刻检查控制台:layui.data('platform') 是否有 access_token 字段;没有说明登录接口没正确调用 layui.data 写入
  • 不要在页面加载时就取 token 并缓存到全局变量,因为登录可能是异步完成的;每次提交前实时取,才可靠
  • 如果后端要求 Authorization: Bearer xxx,但前端拼成了 Authorization: xxx,后端解析失败,返回 401 —— 注意格式细节

表单数据与 Token 的传参分工必须明确

Token 属于认证信息,必须走请求头(headers);业务字段(如 username、id)走请求体(data 或 field)。混在一起传,既违反 REST 规范,也容易被后端中间件拦截或忽略。

  • 把 token 塞进 data.field.token 是危险且低效的做法:可能被日志记录、被缓存、被 XSS 劫持
  • 某些网关或 Spring Security 配置只从 header 解析认证信息,data 里的 token 直接被无视
  • 如果后端同时支持 header 和 body 传 token,那只是兼容写法,不是推荐实践

真正需要关注的,是每次提交前能否拿到「最新、有效、格式正确」的 token —— 而不是想着怎么绕过 header 去“凑合”。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2443

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

5283

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6330

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

5918

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

843

5

登录token无效
登录token无效

登录token无效解决方法:1、检查token的有效期限,如果token已经过期,需要重新获取一个新的token;2、检查token的签名,如果签名不正确,需要重新获取一个新的token;3、检查密钥的正确性,如果密钥不正确,需要重新获取一个新的token;4、使用HTTPS协议传输token,建议使用HTTPS协议进行传输 ;5、使用双因素认证,双因素认证可以提高账户的安全性。

2023.09.14

13346

6

登录token无效怎么办
登录token无效怎么办

登录token无效的解决办法有检查Token是否过期、检查Token是否正确、检查Token是否被篡改、检查Token是否与用户匹配、清除缓存或Cookie、检查网络连接和服务器状态、重新登录或请求新的Token、联系技术支持或开发人员等。本专题为大家提供token相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.14

1605

5

token怎么获取
token怎么获取

获取token值的方法:1、小程序调用“wx.login()”获取 临时登录凭证code,并回传到开发者服务器;2、开发者服务器以code换取,用户唯一标识openid和会话密钥“session_key”。想了解更详细的内容,可以阅读本专题下面的文章。

2023.12.21

3637

3

token什么意思
token什么意思

token是一种用于表示用户权限、记录交易信息、支付虚拟货币的数字货币。可以用来在特定的网络上进行交易,用来购买或出售特定的虚拟货币,也可以用来支付特定的服务费用。想了解更多token什么意思的相关内容可以访问本专题下面的文章。

2024.03.01

5801

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 12.9万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 11.1万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习