Phantomjs 轨道5+;水豚:XHR请求报告状态0
在将应用程序升级到Rails 5的过程中,我看到在基于Capybara的特性规范中,Javascript XHR请求出现了一些令人费解的行为 以下是相关代码(咖啡脚本):Phantomjs 轨道5+;水豚:XHR请求报告状态0,phantomjs,capybara,ruby-on-rails-5,poltergeist,capybara-webkit,Phantomjs,Capybara,Ruby On Rails 5,Poltergeist,Capybara Webkit,在将应用程序升级到Rails 5的过程中,我看到在基于Capybara的特性规范中,Javascript XHR请求出现了一些令人费解的行为 以下是相关代码(咖啡脚本): $.ajax( url: "/foobar" ).done((_data, _status, _jqXhr) -> # *snip* all is well return ).fail((jqXhr) -> # This should be 422 but is 0 instead status
$.ajax(
url: "/foobar"
).done((_data, _status, _jqXhr) ->
# *snip* all is well
return
).fail((jqXhr) ->
# This should be 422 but is 0 instead
status = jqXhr.status
console.log("AJAX request returned with error code #{status}")
return
)
- 在
模式下使用Rails服务器和真正的浏览器(即Chromium或Firefox)时,一切正常development
- 恶灵/幻影JS报告状态0
还报告状态0capybara webkit
- Selenium Webdriver(geckodriver)正确报告状态422
test
模式,与预期的一样为422,这意味着问题一定是在JavaScript领域的某个地方
请注意,这不是一个跨源请求,请求不会中止(状态代码0的常见原因)。由于它在开发
模式下工作,我有点困惑谁可能是这种行为的罪魁祸首
我还尝试查看回调函数的其他属性和参数,以及是否可以在其他属性中找到状态代码,但没有找到任何运气。这听起来像是Qt中的一个bug,capybara webkit和phantomjs都依赖于旧版本的。你试过PhantomJS2.5.0测试版和最新的恶作剧吗?我还没有试过,但这是个好主意。让我困惑的是,为什么它能与Rails 4.1一起工作,而不能与Rails 5一起工作。@Mau li升级到Rails 4.2后,我遇到了这种情况。你找到原因/解决方法了吗?不幸的是,我没有找到。目前,我已经将这些规范标记为“待定”,直到我找到时间编译PhantomJS/Poltergeist的自定义版本,或者更仔细地研究这个问题。这听起来像是Qt中的一个bug,capybara webkit和PhantomJS都依赖于旧版本的。你试过PhantomJS2.5.0测试版和最新的恶作剧吗?我还没有试过,但这是个好主意。让我困惑的是,为什么它能与Rails 4.1一起工作,而不能与Rails 5一起工作。@Mau li升级到Rails 4.2后,我遇到了这种情况。你找到原因/解决方法了吗?不幸的是,我没有找到。目前,我已经将这些规范标记为“待定”,直到我找到时间编译一个PhantomJS/Poltergeist的自定义版本,或者更仔细地研究这个问题。