Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当向API::V1模块控制器提交请求时,无法验证Rails authenticity_token

当向API::V1模块控制器提交请求时,无法验证Rails authenticity_token
EN

Stack Overflow用户
提问于 2019-04-27 11:17:23
回答 1查看 57关注 0票数 0

Rails 5遇到了一个非常奇怪的问题,我有两个控制器,一个是users_controller,另一个是api/v1/users_controller。这两个控制器都有一个register操作。我正试着把一份表格寄给这两个控制器。此表单如下所示,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 <%= form_tag('v2/register/user', {id: "add-user-form", class: "jiffle-form", role: "form"}) do%>
   #form body
   <%= submit_tag("Resigter", data: {i18n: "register"}, class:  "btn btn-lg btn-block btn-blue", id: "add-user", type: "submit") %>
<% end %>

Routes

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
post "register" => "users#create", :as => "user_registeration_submit"
post "v2/register/user" => "api/v1/users#create"

当我使用/register url提交表单时,它将被成功地处理。但是,当我使用v2/register/user url提交表单时,我会得到Can't verify CSRF token authenticity错误。

Params

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Processing by UsersController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"ADNTIp9alRB/ujRhkoqNuDkzdW6ANfcl/MbPjGLwVd6nwVuG5oi+uVhE9MeZo+1MeyKLbwZYNV31Vy/VH3M2bg==", "sfdc_token"=>"",
 "email"=>"[FILTERED]", "first_name"=>"kjl", "last_name"=>"jk", "contact_no"=>"894892849", "company_name"=>"j", "title"=>"kj",
 "internal_366vagan2"=>"", "consent"=>"true",
 "commit"=>"Register"}

当我使用ajax将表单提交给请求中带有X-CSRF-TOKEN头的api/v1/users_controller时,它工作得很好。

在哪里进行更改以使api/v1控制器工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-27 11:40:51

您可以简单地用application_controller.rb编写

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   protect_from_forgery with: :exception, unless: -> { request.format.json? }

并在routes.rb文件中设置默认格式为json。

但更好的办法是:

在您的示例中,您必须创建两个名称空间,一个用于处理API响应,另一个用于表单处理。相应地在routes.rb文件中使用命名空间。并相应地从ApplicationController继承了两个不同的基本控制器。

对于API

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Api::V1::ApplicationController < ApplicationController
   protect_from_forgery with: :exception, unless: -> { request.format.json? }
end

并在routes.rb文件中设置默认格式为json。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 resources :tasks, defaults: {format: :json}

表格视图

使用bydefault设置,或

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Admin::AdminController < ApplicationController
   protect_from_forgery with: :exception
end
#In this case, comment it from main application_controller.rb file:protect_from_forgery with: :exception

注意:这里Admin和Api是两个名称空间。routes.rb文件如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#For admin
namespace :admin do

end 

#For Api
namespace :api do
    scope module: :v1 do

    end
end 

希望它能奏效:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55884040

复制
相关文章
在Excel中获得汉字的首字母
Function hztopy(hzpy As String) As String
钱塘小甲子
2019/06/22
1.4K0
【Excel】用公式提取Excel单元格中的汉字
昨天一个前端的朋友找我帮忙用excel提取代码中的汉字(字符串),可算费了劲儿了,他要提取的内容均在单引号中,但问题是没有统一的规律,同一个单元格可能存在多个要提取的内容,而且汉字中间也夹杂其他字符。
数据科学社区
2018/06/11
8.5K0
oracle 汉字显示问号
3. 修改变量 现在需要将AMERICAN_AMERICA.ZHS16GBK 改为 SIMPLIFIED CHINESE_CHINA.ZH16GBK oracle用户编辑家目录的 .bash_profile 添加
范一刀
2021/08/10
2.1K0
Excel图表技巧16:在图表中突出显示最大值
要突出显示Excel图表中的值,只需添加一个带有要突出显示的值的额外系列。假设想要突出显示销量最大的产品,添加一个额外的列来计算值,如下图3所示。
fanjy
2021/09/22
3.6K0
excel 汉字转拼音「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151859.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/24
7.8K0
芒果tv在miniblink无法显示的bug分析
http://www.mgtv.com/pcclient/tv/里用了window.external,
龙泉寺扫地僧
2019/02/20
9150
如何在AI Studio数据可视化图像中显示汉字
AI Studio是一个非常好用的数据科学在线实验平台,不论是教学、学习还是开发,都可以使用。但是,下面的缺憾未免成为了珍珠上的一点瑕疵。
老齐
2020/05/15
3.4K0
如何在AI Studio数据可视化图像中显示汉字
在DataGrid中显示图片
    DadaGrid 是 ASP.NET 编程中一个很重要的控件,其优良的可定制功能为提高它的表现力提供了极大的方便。除了与数据源直接绑定以外,我们还可以通过列绑定模板对 DataGrid 的列进行自定义,来按照我们设定的格式显示数据。
Java架构师必看
2021/03/22
3.4K0
c#:winform读取excel,并显示在griddataview
立羽
2023/08/24
1.4K0
c#:winform读取excel,并显示在griddataview
如何实现在Excel表格中删除汉字而不破坏其他内容?
方法一: 先将数据复制到WORD中, 在WORD中,编辑/替换 “查找内容”输入:[一-龤]      (带中括号) “替换为”输入:/ 勾选“使用通配符” 点“全部替换” 然后再将数据复制回EXCEL。 附: 龤:ALT+64922 WORD中是:ALT+40868 方法二: =REPLACE(A1,MATCH(” “,MIDB(A1,ROW($1:$100),1),),LENB(A1)-LEN(A1),”/”) 方法三: 若你汉字均在前面,在b1输入公式:=right(a1,l
用户1272546
2018/06/04
2.7K0
关于在eclipse中中文汉字乱码的解决方式[通俗易懂]
很多童鞋反应在吧项目导入到eclipse(myeclipse)时中文会有乱码,修改了编码格式后还是乱码,这里给大家介绍一下关于中文乱码时修改编码的注意事项:
全栈程序员站长
2022/09/01
5.2K0
关于在eclipse中中文汉字乱码的解决方式[通俗易懂]
如何实现在Excel表格中删除汉字而不破坏其他内容?
方法一: 先将数据复制到WORD中, 在WORD中,编辑/替换 “查找内容”输入:[一-龤]      (带中括号) “替换为”输入:/ 勾选“使用通配符” 点“全部替换”
用户1191760
2019/02/27
3.7K0
在Excel中创建悬浮图
步骤1:根据原始数据,整理用于创建图表的数据,如下图2所示。一个名为“隐藏”的列,计算出悬浮的高度,也就是前面显示的柱状的高度之后;一个名为“显示”的列,即绘制的可见柱状的高度。
fanjy
2023/10/05
6480
在Excel中创建悬浮图
使用WebSocket在Server类中无法使用Autowired注解进行自动注入
在SpringBoot项目中使用WebSocket的过程中有其他的业务操作需要注入其它接口来做相应的业务操作,但是在WebSocket的Server类中使用Autowired注解无效,这样注入的对象就是空,在使用过程中会报空指针异常。
余生大大
2022/11/02
5.6K0
在Excel中创建瀑布图
在Excel中很容易创建瀑布图,因为自Excel 2016就推出了瀑布图。然而,改变瀑布颜色稍微有点困难。
fanjy
2023/08/30
6580
在Excel中创建瀑布图
【VBA】在excel中检索文本
虽然在excel文件中检索的vba代码不知道写了多少遍了,每次需要的时候,都是从网上找,然后写。实在是低效的做法。从网上找了一段代码,放在此处,以后需要的时候可以随手拿来。
东风压倒西风
2022/09/06
2.8K0
cmder 无法显示中文
cmder 默认是不支持中文字符的,可以在 Setting > Startup > Environment 下增加一行语言设置:
zucchiniy
2020/05/22
2.6K0
WPF 弹出 popup 里面的 TextBox 无法输入汉字
这是一个 wpf 的bug,在弹出Popup之后,如果 Popup 里面有 TextBox ,这时无法在里面输入文字。
林德熙
2018/09/18
1.7K0
WPF 弹出 popup 里面的 TextBox 无法输入汉字
这是一个 wpf 的bug,在弹出Popup之后,如果 Popup 里面有 TextBox ,这时无法在里面输入文字。
林德熙
2022/08/04
1.8K0
点击加载更多

相似问题

在AJAX和excel中显示汉字

14

在WPF中突出显示/characters行

16

无法在Qt-Embedded 4.7.3中显示汉字

24

在php中如何显示汉字?

30

在HTML文件中显示汉字

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文