create-react-app - 获取本地JSON(通过AJAX)

时间:2017-09-26 17:14:49

标签: javascript json ajax reactjs

我尝试使用create-react-app做一些相当简单的事情,从前端的其他位置动态请求JSON文件。当我请求URL时,Webpack只返回应用程序的index页面(使用HTTP 200)。

我已尝试将JSON文件放在srcpublic目录中,但它没有区别(例如,/src/data/stuff.json,{{ 1}})。

我猜测webpack /正在阻止请求通过。

/public/data/stuff.json这样的东西是行不通的。我看到了请求,但响应只是默认的HTML。

当然,也不要fetch('http://localhost:3000/public/data/stuff.json')http://localhost:3000/src/data/stuff.json

我是动态获取而不是导入,因为我只想要这个JSON文件(我相信webpack会将所有这些文件捆绑在应用程序中;更不用说IRL文件名是动态的,更接近{{1使用大型存档。)

肯定会喜欢任何和所有的帮助和一些建议。谢谢! :)

1 个答案:

答案 0 :(得分:6)

create-react-app使用webpack-dev-server作为开发服务器。 webpack-dev-server使用connect-history-api-fallback为每个请求提供index.html文件(以允许客户端路由)。默认情况下,connect-history-api-fallback不会覆盖带点的路径(如/data/stuff.json)。但是,create-react-app disables this setting

因此,您需要将disableDotRule设置为false here。您可能需要eject才能修改此配置。

此设置取决于您使用的服务器,因此当您未使用webpack-dev-server时,您可能会遇到不同的行为。