Задать вопрос
@OstapO

Как решить проблему с «CORS policy» при работе с API?

Есть Laravel проект на локалке (XAMPP), делаю GET запрос к стороннему API
следующим кодом:
const headers = new Headers({
      "Access-Control-Allow-Origin": "*",
      "Access-Control-Allow-Methods": "*",
      "Access-Control-Allow-Headers": "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With",
      'Access-Control-Allow-Credentials': true,
      'Access-Control-Max-Age': '86400',
      'Content-Type': 'application / json; charset=utf8',
      'id': id,
      'token': token
    })
fetch(url, { headers: headers })
      .then(response => response.json())
      .then(data => {
        console.log(data)
      })
      .catch(error => console.error(error))


Результат запроса:
5caf019ce944d913512581.jpeg
  • Вопрос задан
  • 1246 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@DanKud
Пишите скрипт с запросом к API на PHP и обращайтесь к нему через AJAX.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
irishmann
@irishmann
Научись пользоваться дебаггером
Насколько я понял Access-Control-Allow-Origin через JS мало что решает, поэтому я воспользовался CORS Proxy.
$.ajax({
  type:'POST',
  url: 'https://cors-anywhere.herokuapp.com/http://someproject.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();
    }
  }
});
Ответ написан
Комментировать
inoise
@inoise
Solution Architect, AWS Certified, Serverless
В стопятсотый раз. Cors это механизм безопасности против клиентских запросов браузера. Либо вам владелец API разрешает доступ, либо вам писать серверную обёртку. В противном случае браузер вас не позволит
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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