反应本地获取数据

时间:2020-11-10 09:09:00

标签: javascript reactjs react-native fetch

我在获取数据时遇到问题。我的朋友创建了Rest Api。 这很有趣:

const AnyCors = `https://cors-anywhere.herokuapp.com/`;
const urlAllBus = `http://207.185.72.111:15430/stops?size=15`;
    fetchBusStop = () => {
  return new Promise((resolve, rejects) => {
    fetch(AnyCors+urlAllBus)
      .then((result) => {
        if (!result.ok) throw result.json();
        return result.json();
      })
      .then((result) => {
        console.log(result);
        resolve(result);
      })
      .catch((error) =>
        error.then((body) => {
          console.log('Bad', body);
          rejects(body);
        }),
      );
  });
};

我用react-native创建一个应用。当我仅使用urlAllBus时,我的虚拟机可以正常工作。问题出在物理机器上。当我尝试在Chrome中对urlAllbus使用我的乐趣时,我遇到了CORS问题,因此我使用了AnyCors + urlAllBus,并且一切正常。但是在虚拟机和物理机中,解决方案不起作用。我不知道该怎么办

1 个答案:

答案 0 :(得分:0)

您朋友的API应该通过在响应中添加Access-Control-Allow-Origin: *标头来接受CORS,以允许任何网站访问它。他们还可以通过将标头设置为该网站的基本URL(例如Access-Control-Allow-Origin: http://example.com)来限制对特定网站的访问。

如果API是基于快速表达的,我强烈建议您使用cors软件包,因为它使它成为单行更改。

否则,告诉他们给this MDN page阅读有关CORS的更多信息:)