加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 3查询字符串

发布时间:2020-12-16 20:07:25 所属栏目:百科 来源:网络整理
导读:这里很奇怪的错误我们正确地收到了一个像“/ users / 8788234”这样的请求 在Rails中,我们称之为: redirect_to(:controller = 'login',:from_external_page = true,:on_login = request.env['REQUEST_URI']) and return 我们在Rails日志中看到(正如我们预期
这里很奇怪的错误我们正确地收到了一个像“/ users / 8788234”这样的请求

在Rails中,我们称之为:

redirect_to(:controller => 'login',:from_external_page => true,:on_login => request.env['REQUEST_URI']) and return

我们在Rails日志中看到(正如我们预期的):
重定向到

https://sampleapp.com/login?from_external_page=true&on_login=%2Fusers%2F8788234

但是,从IP看到的下一个请求中,查询字符串的值被加扰:

Started GET "/login?from_external_page=gehr&on_login=%2Shfref%2S8788234" for xx.xxx.xxx.xxx at yyyy-mm-dd

这将使查询字符串值无意义,并导致以下错误:

ArgumentError: invalid %-encoding

(该/被更改为%2S无效).查询字符串中每个键值对的每个单个值都被移动了13个字符.每次我们看到这一点,用户代理读取:“Mozilla / 5.0(兼容; MSIE 9.0; Windows NT 6.1; WOW64; Trident / 5.0)”,但我们也看到用户代理成功导航应用程序.有没有人见过这样的东西? http://www.whatismybrowser.com/告诉我,这个用户代理是在Windows 7上运行的IE9,但是我们还没有能够重现错误.

解决方法

这当然是编码问题.我现在使用Rails 4,以下是我当前项目的示例查询字符串.请注意,querystring中的第一个参数是在您的querystring中缺少的“utf8 =?”.
profiles?utf8=?&min_age=1&max_age=99&min_height=1&max_height=6&min_weight=1&max_weight=400

尝试添加“# encoding: UTF-8 at the beginning of the file”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读