ruby-on-rails - 将带有特殊字符 angularjs 的 json 传递给 ruby
问题描述
我需要制作一个搜索表单,其中使用的后端是红宝石,前端是有角度的。搜索查询以 json 格式的 angular 生成,并通过 restangular 服务传递给 ruby。
它工作正常。但是当我们用分号测试搜索字符串时,它返回了 500 内部错误。第一行puts params[:search]
给出{"content":"my search is
了实际的 json 字符串{"content":"my search is ; and :", "options":[]}
请帮助我如何处理它“ ; ”也请让我知道我需要处理的所有字符。
解决方案
您需要先对参数进行编码。
所以编码的参数将是:
{"content":"my search is %3B and :", "options":[]}
以下也是有效的:
%7B%22content%22%3A%22my+search+is+%3B+and+%3A%22%2C+%22options%22%3A%5B%5D%7D
您可以使用以下方法对 URL 进行编码:https ://www.w3schools.com/tags/ref_urlencode.asp
我确信 Angular 必须有一些库来对 URL 进行编码。
您还可以使用本机Javascript URL 编码器。
SO已经回答了类似的问题。
推荐阅读
- mysql - Mysql查询如果状态相同则选择重复数据如果状态不同则丢弃
- react-native - 为什么更改我的边距百分比会影响我的自定义按钮的间距?
- yugabyte-db - YSQL 与 YCQL 之间的性能差异
- c# - EF核心添加外键时如何生成实体类?
- java - 修改现有的 smali 常量/方法
- php - 当我在地址栏中按回车键时,Laravel 6 重定向到 https://www.example.com/index.php,地址为 www.example.com/profile?
- c++ - 如何在 C++ 中播放声音?
- reactjs - 与钩子反应,使用手风琴内的按钮关闭手风琴
- flask - Redis后台作业完成后如何返回flask render_template?
- git - 远程存储库中的每个文件都被暂存以供删除