我在获取数据时遇到问题。我的朋友创建了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,并且一切正常。但是在虚拟机和物理机中,解决方案不起作用。我不知道该怎么办
答案 0 :(得分:0)
您朋友的API应该通过在响应中添加Access-Control-Allow-Origin: *
标头来接受CORS,以允许任何网站访问它。他们还可以通过将标头设置为该网站的基本URL(例如Access-Control-Allow-Origin: http://example.com
)来限制对特定网站的访问。
如果API是基于快速表达的,我强烈建议您使用cors软件包,因为它使它成为单行更改。
否则,告诉他们给this MDN page阅读有关CORS的更多信息:)