У меня есть приложение Rails со следующим действием:
def some_action
headers['Access-Control-Allow-Origin'] = 'http://www.example.com'
headers['Access-Control-Request-Method'] = 'GET'
headers['Access-Control-Max-Age'] = '1728000'
n = Model.getNumber
render :json => {:count => n}
end
У меня есть пример jQuery на example.com, который выполняет $.getJSON
для этого действия. Как ни странно, поведение совершенно непредсказуемо. Выполнение этих запросов GET каждые несколько секунд, около 50% из них завершаются сбоем с ужасным сообщением «Origin http://www.example.com не разрешено Access-Control-Allow-Origin».
Я действительно ожидал бы, что он будет работать 100% времени или не работать 100% времени. Почему он ведет себя по-разному в нескольких запросах, в нескольких секундах от одного и того же браузера?
Редактировать: я кеширую это действие ... не уверен, имеет ли это какое-то значение.