Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.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
Ruby on rails 黄瓜+;Capybara测试:自Rails 4.1以来AJAX请求伪造保护问题_Ruby On Rails_Ajax_Capybara_Capybara Webkit - Fatal编程技术网

Ruby on rails 黄瓜+;Capybara测试:自Rails 4.1以来AJAX请求伪造保护问题

Ruby on rails 黄瓜+;Capybara测试:自Rails 4.1以来AJAX请求伪造保护问题,ruby-on-rails,ajax,capybara,capybara-webkit,Ruby On Rails,Ajax,Capybara,Capybara Webkit,在升级到Rails 4.1之后,我在一个新项目中遇到了一个关于Cucumber和Capybara的有趣问题 在一个视图中,我放置了一些缩略图。用户应该点击一个缩略图像链接来接收更多关于他所选择的人的信息。通过AJAX的魔力,这些信息随后出现在缩略图下面。以下是我在视图中的操作方式: <%= link_to( image_tag( ... ), "/controller/action.js&person=#{@person.nickname}", id: @person.thumb_

在升级到Rails 4.1之后,我在一个新项目中遇到了一个关于Cucumber和Capybara的有趣问题

在一个视图中,我放置了一些缩略图。用户应该点击一个缩略图像链接来接收更多关于他所选择的人的信息。通过AJAX的魔力,这些信息随后出现在缩略图下面。以下是我在视图中的操作方式:

<%= link_to( image_tag( ... ), "/controller/action.js&person=#{@person.nickname}", id: @person.thumb_id , remote: true) %
等等

在浏览器中可以完美工作,我喜欢它

然而,黄瓜和水豚并不那么顺利。这条水豚线让我很头疼:

When(/^I click on one of the portraits to display the person's stuff$/) do
  click_link("jack_sparrow_THUMB") # @user.thumb_id
end
使用Cucumber运行场景时,我收到上述语句的以下错误消息:

Security warning: an embedded <script> tag on another site requested protected 
JavaScript. If you know what you're doing, go ahead and disable forgery protection 
on this action to permit cross-origin JavaScript embedding.
(ActionController::InvalidCrossOriginRequest)
安全警告:请求保护的另一站点上的嵌入标记
JavaScript。如果您知道自己在做什么,请继续并禁用伪造保护
在此操作上,允许跨源JavaScript嵌入。
(ActionController::InvalidCrossOriginRequest)
问题一定与此有关

只需查看提供的CROSS_ORIGIN_JAVASCRIPT_警告…:(

我能做些什么使我的测试再次运行,而不降级到rails<4.1,甚至不关闭请求伪造保护?非常感谢您的帮助。

请参阅rails指南中的“远程标记的CSRF保护”:

在测试的情况下,如果您同时执行客户端,则更改为:

get:index,format::js

致:

xhr:get,:index,format::js


当前主机和进行AJAX调用的主机是否相同?它是localhost:3000;但在某些地方还涉及一些供应商的东西。
Security warning: an embedded <script> tag on another site requested protected 
JavaScript. If you know what you're doing, go ahead and disable forgery protection 
on this action to permit cross-origin JavaScript embedding.
(ActionController::InvalidCrossOriginRequest)