Исключение ActionController::InvalidCrossOriginRequest из-за бинботов

У меня есть приложения 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 из разных источников.

как это происходит для всех URL-адресов, которые только отвечают на формат JS.

Я знаю о стеллажах, но это для разрешения межсайтового скриптового доступа, но здесь это не так.

приложение / просмотров / комментариев / index.js.erb

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

comments.js

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

1 ответ

Предполагая, что вам нужна помощь с CORS(совместное использование ресурсов из разных источников), вы получаете ошибку, потому что ваша политика CORS по умолчанию "запрещает" каждый прямой доступ XHR.

Чтобы избежать этого, вы можете использовать гем стойку-корс https://github.com/cyu/rack-cors. Надеюсь, это поможет!

Другие вопросы по тегам