Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 坏URI RubyonRails:是因为太长吗?_Html_Ruby On Rails_Ruby_Http_Uri - Fatal编程技术网

Html 坏URI RubyonRails:是因为太长吗?

Html 坏URI RubyonRails:是因为太长吗?,html,ruby-on-rails,ruby,http,uri,Html,Ruby On Rails,Ruby,Http,Uri,因此,我有一个网站,完全工作,与一些URI编码的URL 但是,当我尝试将URL传递到我的chrome浏览器时: Bad Request bad URI `/find/someOne?utf8=%E2%9C%93&search=someThing&choicen=no&querys={%22peopleName%22%3A%22%22%2C%22peopleGroup%22%3A%22%22%2C%22place%22%3A%22%22%2C%22pip%22%3A%22

因此,我有一个网站,完全工作,与一些URI编码的URL

但是,当我尝试将URL传递到我的chrome浏览器时:

Bad Request

bad URI `/find/someOne?utf8=%E2%9C%93&search=someThing&choicen=no&querys={%22peopleName%22%3A%22%22%2C%22peopleGroup%22%3A%22%22%2C%22place%22%3A%22%22%2C%22pip%22%3A%22%22%2C%22hw%22%3A%22%22%2C%22somerock%22%3A%22%22%2C%22rocksomerock%22%3A%22%22%2C%22diedAt%22%3A%222016-01-01%20-%202016-12-31%22%2C%22borndAt%22%3A%22%22%2C%22taxRate%22%3A%22%22}'.

WEBrick/1.3.1 (Ruby/1.9.3/2014-11-13) at somewhere.com:3000
http://somewhere:3000/find/someOne?utf8=%E2%9C%93&search=someThing&choicen=no&querys={%22人姓名%22%3A%22%22%2C%22人组%22%3A%22%2C%22地点%22%3A%22%2C%22pip%22%3A%22%2C%22hw%22%3A%22%2C%22somerock%22%3A%22%2C%22somerock%22%3A%22%22%22%2C%22diedAt%22%3A%221016-01-01-01-20-%202016-12-31%22%2C%22%22%22%22%22%22%22%22%3A%22%22%22%22%22%22%22%22%2C%22%22%22%22%

--它在浏览器中向我抛出一个错误:

Bad Request

bad URI `/find/someOne?utf8=%E2%9C%93&search=someThing&choicen=no&querys={%22peopleName%22%3A%22%22%2C%22peopleGroup%22%3A%22%22%2C%22place%22%3A%22%22%2C%22pip%22%3A%22%22%2C%22hw%22%3A%22%22%2C%22somerock%22%3A%22%22%2C%22rocksomerock%22%3A%22%22%2C%22diedAt%22%3A%222016-01-01%20-%202016-12-31%22%2C%22borndAt%22%3A%22%22%2C%22taxRate%22%3A%22%22}'.

WEBrick/1.3.1 (Ruby/1.9.3/2014-11-13) at somewhere.com:3000
还显示rails控制台中的错误错误URI
[2016-07-04 18:11:31]

版本:

  • 铁路3
  • Ruby 1.9.3

知道如何让它工作吗?是因为URI中的
{
}
还是因为它太长了?

使用
Rack::Utils#Parse_nested_query
在收到请求时解析控制器中的路径,请参阅:

#config/routes.rb
获取“/find/someOne/*str”=>“find#someOne”
#app/controllers/find_controller.rb
类FindController<应用程序控制器
定义某人
custom_params=Rack::Utils.parse_nested_查询(request.env['ORIGINAL_FULLPATH'])
querys\u hash=JSON.parse(自定义参数[“querys”])
结束
结束
通过控制台的示例:

$ bundle exec rails c Running via Spring preloader in process 31944 Loading development environment (Rails 5.0.0) irb(main):001:0> custom_params = Rack::Utils.parse_nested_query "utf8=%E2%9C%93&search=someThing&choicen=no&querys={%22peopleName%22%3A%22%22%2C%22peopleGroup%22%3A%22%22%2C%22place%22%3A%22%22%2C%22pip%22%3A%22%22%2C%22hw%22%3A%22%22%2C%22somerock%22%3A%22%22%2C%22rocksomerock%22%3A%22%22%2C%22diedAt%22%3A%222016-01-01%20-%202016-12-31%22%2C%22borndAt%22%3A%22%22%2C%22taxRate%22%3A%22%22}" => {"utf8"=>"✓", "search"=>"someThing", "choicen"=>"no", "querys"=>"{\"peopleName\":\"\",\"peopleGroup\":\"\",\"place\":\"\",\"pip\":\"\",\"hw\":\"\",\"somerock\":\"\",\"rocksomerock\":\"\",\"diedAt\":\"2016-01-01 - 2016-12-31\",\"borndAt\":\"\",\"taxRate\":\"\"}"} irb(main):002:0> querys_hash = JSON.parse custom_params["querys"] => {"peopleName"=>"", "peopleGroup"=>"", "place"=>"", "pip"=>"", "hw"=>"", "somerock"=>"", "rocksomerock"=>"", "diedAt"=>"2016-01-01 - 2016-12-31", "borndAt"=>"", "taxRate"=>""} $bundle exec rails c 通过过程31944中的弹簧预紧器运行 加载开发环境(Rails 5.0.0) irb(main):001:0>自定义参数=框架::Utils.parse_嵌套查询“utf8=%E2%9C%93&search=someThing&choicen=no&querys={%22人姓名%22%3A%22%22%2C%22人组%22%3A%22%2C%22地点%22%3A%22%2C%22pip%22%3A%22%2C%22hw%22%3A%22%2C%22somerock%22%3A%22%2C%22somerock%22%3A%22%22%22%2C%22diedAt%22%3A%222016-01-01-01-20-%202016-12-31%22%2C%22Bornandat%22%3A%22%22%22%22%2C%22%22%22%22%22%22%3A%22%22%22%22%22% =>{“utf8”=>“✓", "搜索“=>”某物“,”选择“=>”否“,”查询“=>”{“peopleName\”:“\”,“peopleGroup\”:“\”,“place\”:“\”,“pip\”:“\”,“hw\”:“\”,“somerock\”:“\”,“rocksomerock\”:“\”,“diedAt\”:“2016-01-01-2016-12-31\,“Bornadat\”,“taxRate\”,“taxRate\” irb(main):002:0>querys_hash=JSON.parse自定义_参数[“querys”] =>{“peopleName”=>,“peopleGroup”=>,“place”=>,“pip”=>,“hw”=>,“somerock”=>,“rocksomerock”=>,“diedAt”=>“2016-01-01-2016-12-31”,“Bornat”=>,“taxRate”=>}
我首先尝试对
{
/
}
进行编码,看看是否可以修复。请编辑您的问题以包含您的代码。另外,请澄清您的问题。“当我尝试粘贴URL时”是什么意思?将其粘贴到何处?