form表格提交post请求,到后端变成了get请求,这个坑怎么填?!

您所在的位置:网站首页 post出来了 form表格提交post请求,到后端变成了get请求,这个坑怎么填?!

form表格提交post请求,到后端变成了get请求,这个坑怎么填?!

2023-11-11 21:08| 来源: 网络整理| 查看: 265

前端的post请求到后端变成了get请求,什么鬼?

本人在编写flask服务器项目过程中,需要从前端接收用户的登录信息,将用户信息保存进session和cookie中。 后端代码如下:

@app.route('/login',methods=['GET','POST']) def login_views(): if requesthod == 'GET': # 判断是否已经在登录状态:session中是否有uname值 if 'uname' in session: # 已经登录成功,直接去首页 return redirect('/') else: # 未在登录状态,继续判断cookie if 'uname' in request.cookies: # 曾经记录过用户,取出值,保存进session uname = request.cookies['uname'] session['uname'] = uname return redirect('/') else: # 去往登录页 return render_template('login.html') else: # 先处理登录,登录成功回首页;否则回登录页面。 uname = request.form.get('uname') upwd = request.form.get('upwd') print('********************') print(uname) print(upwd) print('********************') if uname == 'admin' and upwd == 'admin': # 声明重定向首页的对象 resp = redirect('/') # 登录成功 # 先将数据保存近session session['uname'] = uname # 是否要记住密码 if 'isSaved' in request.form: # 需要记住密码,将信息保存进cookies resp.set_cookie('uname',uname,60*60*24*31) return resp else: # 登录失败 return redirect('/login')

在点击登录前,控制台中的cookie和session数据为空: 在这里插入图片描述 目标结果图片如下: 在这里插入图片描述 但实际结果却是下图所示: 在这里插入图片描述 本人不死心,找来前端核心代码查看,代码如下:

用户名: 用户密码: 记住密码: 有错么???!!窃以为,没有!!! 我不服!重写代码如下: 用户名: 用户密码: 记住密码: 运行,成功!!!结果如下:

在这里插入图片描述 上面两端代码有区别么?

我从前到后看来10遍!10遍!!!没有发现问题!!!!

于是决定从后向前一句一句地替换,当只剩下第一条语句还没有检查时,问题依然没有发现。也就是说,问题出现在下面这句代码:

错误代码: 正确代码:

我依然认为这两句代码是一模一样的,但是问题果然出现在这一句。WHY???!!! 正当我开始怀疑人生时,居然发现,这两句代码虽然是一个爹生的,但貌似长度不一样。问题出现在下面两个单词中间的空格上!!

"/login" method #中间隐藏了一个中文空格 "/login" method

把空格改掉之后,果然如此!!

原因原来是这样: 当post请求代码中出现语法错误时,代码本身有时候是不报错的。但是post请求却无法提交,而是将post请求信息封装到url地址中,以get请求方式提交。

也就出现了下面的这种url地址:

http://127.0.0.1:6060/login?uname=admin&upwd=admin&isSaved=on&login=%E7%99%BB%E5%BD%95 当然,具体什么语法错误,要就事论事!! 此坑已填!!!!!


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3