2

我有 Rails 应用程序,我在页面加载后使用 Ajax 加载评论。

class CommentsController < ApplicationController
  respond_to :js

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

它按预期工作。但是 bingbot 正试图访问它导致的这个 url

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

就像所有只响应 js 格式的 url 一样。

我知道rack-cors,但它是为了允许跨端脚本访问,但这里不是。

应用程序/视图/评论/index.js.erb

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

评论.js

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

1 回答 1

0

假设您在 CORS(跨域资源共享)方面需要一些帮助,您会遇到错误,因为您的 CORS 策略默认为“拒绝”每个直接 XHR 访问。

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

于 2014-08-18T11:04:16.767 回答