我已经进行了各种搜索,似乎无法弄清楚。
我正在尝试创建一个小部件,您可以将该小部件放置在任何网站上以获取用户的反馈,该小部件将把反馈发布到我的应用程序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
我已经进行了各种搜索,似乎无法弄清楚。我正在尝试创建一个小部件,您可以将该小部件放置在任何网站上,以获取用户的反馈,该反馈将发布到我的...
查看您的网站,当我使用小部件时,在控制台中看到相同的错误消息: