常见原因是前端未发送请求或格式错误:如未阻止表单默认提交、密码空格处理不当、加解密方式不一致、content-type 错误、字段名与后端不匹配等。
密码前端输入不触发后端校验,常见原因是什么
多数情况不是后端没写逻辑,而是前端没发请求或发错格式。HTML5 的 <input type="password"> 本身不带校验能力,它只负责隐藏字符显示;真正触发后端验证,必须靠 JS 主动调用接口,比如在点击「登录」按钮时执行 fetch() 或 axios.post()。
容易踩的坑:
- 表单用了
submit但没event.preventDefault(),导致页面跳转、请求中断 - 密码字段被 JS 读取时用了
input.value.trim(),但后端要求空格敏感(如某些旧系统) - 前端对密码做了 MD5/SHA 加密再传,而后端 expecting 明文(或反过来)——两边加解密方式没对齐
- Content-Type 错设成
text/plain,后端解析不到password字段
前后端密码字段命名和传输格式怎么对齐
后端接口文档里写的参数名,必须和前端请求 payload 中的 key 完全一致,包括大小写和下划线。比如后端接收的是 { "user_pwd": "123456" },前端就不能传 password 或 pwd。
实操建议:
立即学习“前端免费学习笔记(深入)”;