form表格提交post请求,到后端变成了get请求,这个坑怎么填?! |
您所在的位置:网站首页 › post出来了 › form表格提交post请求,到后端变成了get请求,这个坑怎么填?! |
前端的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数据为空:
于是决定从后向前一句一句地替换,当只剩下第一条语句还没有检查时,问题依然没有发现。也就是说,问题出现在下面这句代码: 错误代码: 正确代码:我依然认为这两句代码是一模一样的,但是问题果然出现在这一句。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 |