Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';t在React中从我的API服务器获取数据_Php_Reactjs_Rest_Api - Fatal编程技术网

Php Can';t在React中从我的API服务器获取数据

Php Can';t在React中从我的API服务器获取数据,php,reactjs,rest,api,Php,Reactjs,Rest,Api,我尝试从我的服务器获取数据(文件夹中的文件列表)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_di

我尝试从我的服务器获取数据(文件夹中的文件列表)
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);
    }
?>
但结果是
CORS请求未成功
,并且
CORS标头“访问控制允许源站”丢失
。当我使用Postman时,一切正常,我得到了json对象和我想要的数据。

尝试添加:

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

问题已解决


我尝试从
my site.com/api
获取数据,但我应该从
my site.com/api/index.php

获取数据。尝试以下操作:我已将
proxy
添加到
package.json
中,但现在我得到了以下错误:
错误语法错误:“json.parse:json数据第1行第1列的意外字符”
尝试记录纯文本响应我使用response.text()而不是.json(),我得到my-site.com/api HTML,它是404,但在my-site.com/api的浏览器中我得到json,您应该检查您的响应标题。例如,见。
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"