Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Reactjs 对本地JSON文件的React fetch请求返回index.html,而不是JSON文件_Reactjs_Fetch Api - Fatal编程技术网

Reactjs 对本地JSON文件的React fetch请求返回index.html,而不是JSON文件

Reactjs 对本地JSON文件的React fetch请求返回index.html,而不是JSON文件,reactjs,fetch-api,Reactjs,Fetch Api,我在使用react和fetch时遇到一些意外行为。这应该是非常直截了当的 我的代码如下所示: import React, { Component } from 'react'; class App extends Component { componentDidMount() { fetch('/dict.json') .then(res => res.json()) .then(json => console.log(json)) } ren

我在使用
react
fetch
时遇到一些意外行为。这应该是非常直截了当的

我的代码如下所示:

import React, { Component } from 'react';

class App extends Component {

  componentDidMount() {
    fetch('/dict.json')
    .then(res => res.json())
    .then(json => console.log(json))
  }

 render() {
    return (
     <p>Example</p>
   );
  }
}

当我检查网络时,它正在请求
index.html
页面,这对我来说毫无意义。以前有人经历过这种情况吗?

生产版:如果此代码将在生产版中运行,那么
获取
将无法在此处工作,除非您已设置web服务器来提供该JSON文件,但是,您可以导入本地JSON文件:

import dict from './_dict.json';
然后在
组件didmount
内部,您可以映射到它

let results = dict.map((item, index) => {
   // ...
});
Localhost:如果您只想在Localhost上运行此程序,那么我不明白为什么它不起作用,除非您的React应用程序将HTTP请求代理到本地Web服务器(这在Reactjs开发中非常常见),并且本地Web服务器没有设置为向您的JSON文件提供服务。因此,请检查package.json或webpack设置,了解以下内容:

"proxy": "http://localhost:8080"

并配置在该端口上运行的web服务器,以响应请求为您的JSON文件提供服务。

生产版:如果此代码将在生产版中运行,则除非您已设置web服务器来为该JSON文件提供服务,否则此代码将无法在此处运行,您可以导入本地JSON文件:

import dict from './_dict.json';
然后在
组件didmount
内部,您可以映射到它

let results = dict.map((item, index) => {
   // ...
});
Localhost:如果您只想在Localhost上运行此程序,那么我不明白为什么它不起作用,除非您的React应用程序将HTTP请求代理到本地Web服务器(这在Reactjs开发中非常常见),并且本地Web服务器没有设置为向您的JSON文件提供服务。因此,请检查package.json或webpack设置,了解以下内容:

"proxy": "http://localhost:8080"

并配置在该端口上运行的Web服务器,以响应请求提供JSON文件。

尝试此文件结构

- public |_index.html |_dict.json - src |_app.js -公开的 |_index.html |_dict.json -src |_app.js
试试这个文件结构

- public |_index.html |_dict.json - src |_app.js -公开的 |_index.html |_dict.json -src |_app.js
哦,好的,没错!所以你不能向本地文件发出这样的请求?我认为这在jquery ajax方法中是可能的我很困惑:-您的目标是让它在生产环境或本地主机上运行吗?网站可以向本地主机发出HTTP请求,但只有当它们自己在本地主机上运行时,如果您的应用程序处于活动状态,则无法运行我怀疑您可能在后台运行服务器,所有HTTP请求都是从您的React应用程序代理到的,并且服务器没有设置为返回本地JSON文件哦,好的,这是正确的!所以你不能向本地文件发出这样的请求?我认为这在jquery ajax方法中是可能的我很困惑:-您的目标是让它在生产环境或本地主机上运行吗?网站可以向本地主机发出HTTP请求,但只有当它们自己在本地主机上运行时,如果您的应用程序处于活动状态,则无法运行我怀疑您可能在后台运行服务器,其中,所有HTTP请求都由React应用程序代理,并且该服务器未设置为返回本地JSON文件