我有一个功能规范,作为页面加载的一部分。 我点击了一个本地网址来获取更多数据。
即。使用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
答案 0 :(得分:0)
设置这些内容的最佳方式是在您的测试环境中,因为您不希望在生产中打开原点。
<强> 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&#39;之后收到此错误在这种情况下,它只是一个基于你的capybara asset_path的渲染错误,而不是你的测试用例的实际问题。