我有一个在本地运行的VM,它是使用Vagrant构建的。我可以直接从浏览器卷曲并转到URL。出于某种原因,当我使用fetch
API在我的react-native应用中进行相同的调用时,它会不断向我发出Network request failed
错误。
以下是代码片段:
fetchData() {
this.setState({ isLoading: true });
var baseURL = 'https://192.168.33.33/api/session';
console.log('URL: >>> ' + baseURL);
fetch(baseURL)
.then((response) => response.json())
.then((responseData) => {
console.log(responseData);
})
.catch(error => {
console.log(error);
})
.done();
}
baseURL
日志返回正确的URL,错误如下:
URL: >>> http://192.168.33.33/api/session
TypeError: Network request failed {stack: (...), message: "Network request failed"}
message: "Network request failed"
stack: (...)
get stack: function () { [native code] }
set stack: function () { [native code] }
__proto__: Error
我认为我的应用程序无法以某种方式访问我的虚拟机可能会出现问题,所以我继续将其部署到真实的服务器上,它仍然会出现同样的错误。
有什么想法吗?
答案 0 :(得分:4)
找到问题并解决了。
问题是由API服务器中的自签名证书引起的,没有自己创建的CA.
我可以尝试创建自己的CA然后从中创建证书,但我继续并获得了廉价的真正SSL证书。这解决了这个问题。
答案 1 :(得分:-1)
我认为您可能面临same origin policy约束。
有many种解决方法。