前端发送post请求,返回数据缺少字段(前端提交post请求却变成get请求的原因及解决方法)
导语:笔者在vue2项目中 ,使用axios封装post请求 ,提交请求时却变成get请求
1. 错误写法
export function login(data){ return service.request({ url:/user/login, methods: "post", data:data, }) }2. 错误原因
编写登录方法时 ,把method敲成methods ,而且又看到了提示就直接使用了(太粗心😭)
[ Axios 中文文档 ] 改成如下代码即可
export function login(data){ return service.request({ url:/user/login, method: "post", data:data, }) }3. POST请求变成了GET请求的原因
· 浏览器的默认请求模式是GET
当我们在浏览器地址栏中输入一个网址或单击链接时 ,浏览器会发送一个GET请求来获取该网页的内容 。GET是HTTP协议中最常用的一种请求方法 ,用于获取服务器上的资源 ,例如文本 、图片 、视频等 。由于GET方法是幂等的 ,即在相同的请求下 ,不会对服务器上的资源状态产生副作用 ,因此它更适合用于读取和获取资源 。但是 ,如果需要修改服务器上的资源 ,例如添加 、更新或删除数据,则需要使用其他请求方法 ,如POST 、PUT 、DELETE等 。
· POST请求出现语法错误时 ,就变成了GET请求
当使用POST请求时,客户端(例如浏览器)会向服务器发送一个带有请求正文(request body)的请求 。如果在发送POST请求时出现语法错误 ,服务器可能会无法正确解析请求正文 ,从而无法处理该请求 。
在这种情况下 ,服务器可能会返回一个HTTP 400 Bad Request错误响应 ,通知客户端请求存在语法错误 。如果浏览器无法正确处理这个错误响应 ,它可能会将POST请求转换为GET请求 。这种情况下 ,浏览器会将请求参数附加到URL上 ,而不是放在请求正文中 。这样可能会导致数据被暴露在URL中 ,从而存在安全风险 。4. POST请求变成了GET请求如何解决
检查请求的URL是否正确 ,确保POST请求发送到了正确的URL上 检查请求是否包含正确的请求头(如Content-Type) ,以确保请求正文的格式正确 检查服务器是否正确处理了请求 ,并返回了正确的响应 。如果服务器返回HTTP 400 Bad
Request响应 ,浏览器可能会将POST请求转换为GET请求 如果在JavaScript代码中使用了AJAX来发送POST请求,请确保代码正确设置了请求方法和请求正文创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!