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文件