由于Heroku上Rails应用的CORS错误,无法发布跨域ajax帖子

问题描述 投票:0回答:1

我已经进行了各种搜索,似乎无法弄清楚。

我正在尝试创建一个小部件,您可以将该小部件放置在任何网站上以获取用户的反馈,该小部件将把反馈发布到我的应用程序waterloo.herokuapp.com上,用户可以在其中登录以查看其所有反馈。] >

我正在通过以下代码在我的Rails应用程序中使用jQuery ajax POST方法:

fb_form.submit(function(ev) {
  $.ajax({
    type: 'POST',
    url: 'http://waterloo.herokuapp.com/domains/2/comments',
    data: fb_form.serialize(),
    success: function(data) {
      console.log(data);
      alert('cool, this worked');
      $('.feedback-container').hide();
    },
    error: function(data) {
      console.log(data);
    }
  });

并且出现以下错误:

XMLHttpRequest无法加载http://waterloo.herokuapp.com/domains/2/comments。所请求的资源上没有“ Access-Control-Allow-Origin”标头。因此,不允许访问源'http://www.will-wallace.com'。

在我的comments_controller中,我有一个set_headers before_filter,它应该允许来自任何域的帖子(并在本地工作):

def set_headers
  headers['Access-Control-Allow-Origin'] = '*'
  headers['Access-Control-Expose-Headers'] = 'Etag'
  headers['Access-Control-Allow-Methods'] = 'POST'
  headers['Access-Control-Allow-Headers'] = '*, x-requested-with, Content-Type, If-   Modified-Since, If-None-Match'
  headers['Access-Control-Max-Age'] = '86400'
end

最奇怪的是,当我登录以查看尝试发布的反馈时,它实际上成功了。尽管如此,正如我之前提到的,我收到了ajax错误响应。

我正在测试该小部件的域是will-wallace.com,如果它可以帮助您并且实际上在弄弄它。

最后,如果有帮助的话,通过在heroku日志中尾随,我似乎会遇到500错误:

2014-07-10T01:39:59.624512+00:00 heroku[router]: at=info method=POST path="/domains/2/comments" host=waterloo.herokuapp.com fwd="96.255.218.195" dyno=web.1 connect=5ms service=63ms status=500 bytes=1543
    

我已经进行了各种搜索,似乎无法弄清楚。我正在尝试创建一个小部件,您可以将该小部件放置在任何网站上,以获取用户的反馈,该反馈将发布到我的...

javascript jquery ruby-on-rails ajax
1个回答
1
投票

查看您的网站,当我使用小部件时,在控制台中看到相同的错误消息:

© www.soinside.com 2019 - 2024. All rights reserved.