【发布时间】:2017-02-06 17:11:42
【问题描述】:
我正在开发一个完全用 React.js 编写的网络应用程序。它建立在this 样板之上,并将部署在 apache 服务器上。
该应用程序使用 jQuery AJAX 向远程 API 发出 GET 和 POST 请求(结果为 JSONP 格式)。现在我需要获取存储在名为“./json”的“真实”文件夹(不是 react-router 路径)中的 JSON 文件。我该怎么做?
【问题讨论】:
-
只要您请求的文件与网页的来源相同(即该页面是从
https://foo.bar提供的并且您请求的是https://foo.bar/json/baz.json),您通常可以使用AJAX 只要服务器配置为提供这些文件。例如,如果您使用的是 node.js,则需要确保您实际上是通过 HTTP 提供https://foo.bar/json/baz.json。编辑:哦,您使用的是 Apache——好吧,同样的故事,请确保 Apache 通过 HTTP 提供您的 JSON 文件。 -
我没有使用 httpS。 jQuery ajaxing 一个 JSON 文件(无论位于何处)总是返回 index.html 代码。
-
就像我上面所说的,您需要配置您的服务器以通过 HTTP 实际提供 JSON 文件。由于您使用的是 React,因此您的服务器可能已配置为以大多数 React 单页应用程序的方式将所有请求重定向到
index.html。事实上,看看你正在使用的样板,Node 就是这样做的。使用 AJAX 加载 JSON 显然在大多数情况下都有效,如果不是,则必须是服务器配置问题。 jsfiddle.net/_jered/e5zjqj0b
标签: json reactjs react-router