Не работает внешний Ajax запрос (Laravel), Response to preflight request doesn't pass access control check?

Выполняю Ajax запрос на внешний сервис для получения курса валют в json в ларавеле:
$.ajax({
   url: 'https://www.cbr-xml-daily.ru/daily_json.js',
   type: 'GET',
   dataType: 'json',
   success: function(
      console.log(data);
    },
});


После отправки запроса получаю следующую ошибку:
Access to XMLHttpRequest at 'https://www.cbr-xml-daily.ru/daily_json.js?_token=arouoLREfMEpk7CypZFcYBPd9KyOCpJYPnI1qxZg' from origin 'http://mysite.exchange' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
  • Вопрос задан
  • 490 просмотров
Решения вопроса 1
irishmann
@irishmann
Научись пользоваться дебаггером
Почитать о CORS Википедия

Тоже столкнулся с такой проблемой, но у меня бэкенда нет, поэтому вышел из ситуации таким образом: использовал CORS прокси.
$.ajax({
	type:'POST',
	url: 'https://cors-anywhere.herokuapp.com/http://************.ru/api/',
	data: { 
		query: '{"ask":"'+message+'","userid":'+id+',"key":"1"}'
	},
	success: function(data){
		msg = JSON.parse(data);
		$(".messages").append('<li><div class="text-msg receive_msg">'+msg['aiml']+'</div></li>');
		while($(".messages li").length > 7){
			$('li:first').detach();
		}
	}
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
AnatolTh
@AnatolTh
Full Stack Developer
Ответ написан
Комментировать
alexkbs
@alexkbs
Всё работает как в примере из вопроса:
$.ajax({
  url: 'https://www.cbr-xml-daily.ru/daily_json.js',
  type: 'GET',
  dataType: 'json',
  success: function(data) {
    console.log(data.Valute.USD.Value.toFixed(4).replace('.', ','));
  },
});


Демо с кнопкой.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы