Rails-Api 限制 url 的长度

Rails-Api limits length of url

向我的 rails 应用程序发送请求时:

http://0.0.0.0:3334/v1/api/notebooks/users/verified/courses/None/files/asset-v1%3AedX%2BDemoX%2BDemo_Course%2Btype%40asset%2Bblock%40Welcome_R__-_demo.ipynb

我注意到 rails 传递给控制器​​的参数是:

Parameters: {"username"=>"verified", "course"=>"None", "file"=>"asset-v1:edX+DemoX+Demo_Course+type@asset+block@Welcome_R__-_demo"}

它已删除句点或 .file 扩展名。我意识到这是因为 rails 似乎为 url 设置了一些最大长度。有办法解决这个问题吗?

URL 的最后一部分通常被拉出为 params[:format]。您可以通过将路径指定为 /*path 来避免这种情况,但通常将格式参数重新打开并不是什么大问题。

过长的 URL 通常是错误的。 URLs 超过 2,000 个字符在最流行的网络浏览器中不起作用。如果您想让您的网站为大多数 Internet 用户服务,请不要使用它们。

当您希望提交包含许多字段的表单时,否则会产生很长的 URL,标准解决方案是使用 POST 方法而不是 GET方法:

<form action="myaction" method="POST">
   ...
</form>

查看有关限制的更多信息here