【问题标题】:Rails capybara feature spec No 'Access-Control-Allow-Origin'Rails capybara 功能规范没有“Access-Control-Allow-Origin”
【发布时间】:2015-07-22 18:52:50
【问题描述】:

我有一个功能规范,作为页面加载的一部分。 我点击了一个本地网址以获取更多数据。

即使用http://fullcalendar.io/ 它通过 ajax 加载它的事件

   events: {
             url: 'calendar_events.json',
             type: 'GET',
             error: function(response) {
             ...
            }},

我来了

XMLHttpRequest cannot load http://localhost:3000/calendar_events.json?start=2014-01-20&end=2014-01-27. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 404.

不完全确定如何解决。我尝试添加

    response.headers['Access-Control-Allow-Origin'] = '*'
    response.headers['Access-Control-Allow-Methods'] = 'POST, PUT, DELETE, GET, OPTIONS'
    response.headers['Access-Control-Request-Method'] = '*'
    response.headers['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept, Authorization'

到我的应用程序控制器上的 before_filter 只是为了查看,但仍然遇到同样的问题。

注意:我正在使用 capybara-webkit

【问题讨论】:

  • stackoverflow.com/a/6120260/3274024 你可以检查一下,也许这是请求的问题。
  • 真的不想改成jsonp
  • 也许跨域触发就够了。不知道我是否理解你为什么要访问本地 url,你能不能直接在服务器端渲染它?

标签: ruby-on-rails rspec capybara capybara-webkit


【解决方案1】:

设置这些的最佳方式是在您的测试环境中,因为您不希望在生产中打开源。

test.rb

  config.action_dispatch.default_headers.merge!(
  {
      'Access-Control-Allow-Origin' => '*',
      'Access-Control-Allow-Methods' => 'POST, PUT, DELETE, GET, OPTIONS',
      'Access-Control-Max-Age' => "1728000",
     'Access-Control-Allow-Headers' =>'Origin, X-Requested-With, Content-Type, Accept, Authorization'
  })

至于您的问题,我怀疑您在“save_and_open_page”之后收到此错误,在这种情况下,这只是基于您的水豚资产路径的渲染错误,而不是您的测试用例的实际问题。

【讨论】:

  • 你知道为 Rails 3 设置默认标题的方法吗?
  • 对于单个请求,它类似于:“get desired_pa​​th, params_hash, { 'Access-Control-Allow-Origin' => '*' }。我怀疑设置默认值对你不起作用上面?
  • 是的,default_headers 仅适用于 Rails 4。
猜你喜欢
  • 2017-06-15
  • 2018-12-12
  • 2019-01-05
  • 2016-01-21
  • 2018-02-02
  • 1970-01-01
  • 2017-09-19
  • 2017-12-06
  • 2015-04-02
相关资源
最近更新 更多