ActionController ::由于bingbots导致的InvalidCrossOriginRequest异常

时间:2014-08-18 10:28:57

标签: ruby-on-rails ruby-on-rails-4.1 bingbot

我有rails应用程序,我在页面加载后使用Ajax加载注释。

class CommentsController < ApplicationController
  respond_to :js

  def index
    @comments = Comments.all
    respond_with @comments
  end
end

它按预期工作。但是bingbot正试图访问它导致的网址

在评论中发生了一个ActionController :: InvalidCrossOriginRequest #index:      安全警告:另一个站点上的嵌入式标记请求受保护的JavaScript。如果您知道自己在做什么,请继续并禁用此操作的伪造保护,以允许跨源JavaScript嵌入。

就像所有网址一样只响应js格式。

我知道rack-cors,但是它允许跨侧脚本访问,但不是这样。

应用/视图/评论/ index.js.erb的

$('.comments_container').html("<%=j render 'comments' %>");

comments.js

jQuery(function() {
  return $.ajax({
    url: $('.comments_container').data('url')({
      dataType: "script"
    })
  });
});

1 个答案:

答案 0 :(得分:0)

假设您需要一些CORS(跨源资源共享)的帮助,您将收到错误,因为您的CORS策略默认为&#34;拒绝&#34;每次直接XHR访问。

您可以使用rack-cors gem https://github.com/cyu/rack-cors来避免这种情况。希望这有帮助!