未从Fetch API获取响应(在React native with Laravel API中)
我使用的是React native 0.44、Fetch API和Laravel 5.3 API 当我尝试使用fetchapi获取URL时,它不会给出任何输出或响应 由于未从Fetch API获取响应(在React native with Laravel API中),laravel,reactjs,react-native,laravel-5.3,fetch-api,Laravel,Reactjs,React Native,Laravel 5.3,Fetch Api,我使用的是React native 0.44、Fetch API和Laravel 5.3 API 当我尝试使用fetchapi获取URL时,它不会给出任何输出或响应 由于localhost:8000无法在FetchAPI中工作,我尝试使用wifi IP地址 doSignUp() { console.log("inside post api"); fetch('http://192.168.43.244:8000/api/user?token=eyJ0eXAiOiJK
localhost:8000
无法在FetchAPI中工作,我尝试使用wifi IP地址
doSignUp() {
console.log("inside post api");
fetch('http://192.168.43.244:8000/api/user?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjE0NywiaXNzIjoiaHR0cDpcL1wvbG9jYWxob3N0OjgwMDBcL2FwaVwvYXV0aGVudGljYXRlIiwiaWF0IjoxNDk2MjA0ODgwLCJleHAiOjE0OTYyMDg0ODAsIm5iZiI6MTQ5NjIwNDg4MCwianRpIjoiRGdtSDNSWXl4MEtUZWs2YSJ9.yc0FvK5uJz8rzDWAZLwweDMrz6ljTWkTzvxgtCjEqAc', {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
}).then((response) => response.json())
.then((responseJSON) => console.log("inside responsejson"))
.catch(e=>console.error(e))
.done();
}
我遇到了同样的问题,我用npm es6 promise和同构fetch包解决了它。试试看
import fetch from 'isomorphic-fetch';
require('es6-promise').polyfill();
你可以像这样使用它
fetch('/holidays/occasion', {
credentials: 'same-origin',
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
state: evt.target.value
})
});
},
通过尝试检查状态是否正常
fetch('http://192.168.43.244:8000/api/user?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjE0NywiaXNzIjoiaHR0cDpcL1wvbG9jYWxob3N0OjgwMDBcL2FwaVwvYXV0aGVudGljYXRlIiwiaWF0IjoxNDk2MjA0ODgwLCJleHAiOjE0OTYyMDg0ODAsIm5iZiI6MTQ5NjIwNDg4MCwianRpIjoiRGdtSDNSWXl4MEtUZWs2YSJ9.yc0FvK5uJz8rzDWAZLwweDMrz6ljTWkTzvxgtCjEqAc', {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
}}).(res => {
if (res.status === 'OK') {
console.log('I should be getting the data')
return res.json()
}
}).then(res => console.log(res))
运行命令adb reverse tcp:8000 tcp:8000并重新加载应用程序。Fetch是一个低级库,如果您想保持理智,不建议使用它。事实上,fetch仅在遇到网络错误时拒绝承诺。所有其他http错误将进入then块,在该块中检查
if(response.ok)
对于我的react原生项目,我使用这个包
此外,请注意,如果您在iOS react本机项目上,本地主机以外的任何地址都将被拒绝,并且可能会无声地失败,因为由于以下原因,除了https之外的所有通信都是不允许的
. 我相信这就是您面临的问题为什么要使用Get方法,这是一种AJAX请求。您可以使用react官方文档中解释的简单获取 通过使用生产服务器url解决了此问题
问题是获取api,而且axios无法访问本地主机 尝试在获取选项中添加键值对
凭据:“include”
。RN 0.44引入了withCredentials XHR标志,如您所见。使用上述包->获取错误:fetch(…).then(…).then(…).catch(…).done也不是一个函数,我如何使用fetch变量u declared顺便说一句,它仍然没有识别然后在这个包中使用函数您必须在您的包中安装同构fetch和es6 promise,就像在我的项目中一样,我已经使用npm安装了它们安装es6 promise,然后导入依赖性尝试了您的方法授权
:“承载令牌”…仍然没有:(您是否可以尝试仅安慰响应(而不是response.json())然后检查你是否能看到任何东西你能试着获取这个url只是为了检查url是否有任何问题吗它返回了对象…也许是你的问题…那么问题出在哪里呢?你能用邮递员点击你的url并检查你是否能看到响应吗
函数正在启动?是的,我确定cz可以在控制台中看到post api中的