функция fetch, возвращающая ошибку CORS при получении страницы php - PullRequest
0 голосов
/ 29 апреля 2020

Я создаю ReactJs приложение, которое использует функцию извлечения следующим образом:

У меня на сервере есть страница. php, которая печатает случайную цитату, и я хочу получить эту цитата из моего приложения React, которое размещено на том же сервере. Но это происходит странно, я объясню:

1) с моего компьютера: let newText = await fetch("https://cors-anywhere.herokuapp.com/http://www.MYURL.com/actionv/API/aov_API.php"); будет работать как положено, если я удалю часть https://cors-anywhere.herokuapp.com/, она не будет работать (не знаю почему)

2) точно такое же приложение с сервера, которое я создал с помощью npm run build, не будет работать вообще, даже если я использую https://cors-anywhere.herokuapp.com/ part ...

", не будет работа "означает, что я получаю эту ошибку:

(индекс): 1 Доступ к выборке в 'http://www.MYURL.com/actionv/API/aov_API.php' (перенаправлено из 'https://cors-anywhere.herokuapp.com/http: // www.MYURL.com/actionv/API/aov_API.php ') из источника' http://www.MYURL.com 'заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Если непрозрачный ответ отвечает вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS. Приложение. js: 8 GET http://www.MYURL.com/actionv/API/aov_API.php net :: ERR_FAILED asyncToGenerator. js: 6 Uncaught (в обещании) TypeError: Не удалось получить

the полная функция:

function App(){
  async function updateQuote(type){
    let newText = await fetch("https://cors-anywhere.herokuapp.com/http://www.MYURL.com/actionv/API/aov_API.php");
    let msg = await newText.text();
    console.log(msg);
    setQuoteText(JSON.stringify(msg));
  }

1 Ответ

0 голосов
/ 29 апреля 2020

Здесь Я обнаружил, что вам нужно добавить в начало вашего. php файла это:

header('Access-Control-Allow-Origin: *');

это позволяет получать из того же источника

(Спасибо ADyson за ссылку)

Пожалуйста, если кто-то считает, что это проблема безопасности, скажите мне! спасибо

...