Не удается получить данные с моего API-сервера в React - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь получить данные (список файлов в папке) с моего сервера https://www.my-site.com/api, где у меня есть index.php файл, который

<?php
    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json");

    $dir = "./photos"; //path

    $list = array(); //main array

    if(is_dir($dir)){
        if($dh = opendir($dir)){
            while(($file = readdir($dh)) != false){

                if($file == "." or $file == ".."){
                    //...
                } else {
                    $list3 = array(
                        'url' => $file);
                        array_push($list, $list3);
                }
            }
        }

        $return_array = array('photos'=> $list);

        echo json_encode($return_array);
    }
?>

и в моем приложении React я пытаюсь использовать fetch

fetch('https://www.my-site.com/api', {
   method: 'GET',
   redirect: 'follow',
   headers: {
  }
})
  .then(response => response.json())
  .then(res => console.log(res))
  .catch(error => console.log('error', error));

но результат равен CORS request did not succeed и CORS header 'Access-Control-Allow-Origin' missing. Когда я использую Postman, все в порядке, и я получаю json объект с данными, которые я хотел.

Ответы [ 2 ]

0 голосов
/ 01 марта 2020

Проблема решена.

Я пытался получить данные из my-site.com/api, но мне нужно получить из my-site.com/api/index.php

0 голосов
/ 01 марта 2020

Попробуйте добавить:

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"

К .htaccess файлу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...