Исключение 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. Надеюсь, это поможет!