Javascript null不是对象(正在计算';blob.data';)获取
我是JS新手,我正在尝试使用Fetch在react移动应用程序中使用服务。 我想以某种方式捕获由于没有连接或无法访问服务器而导致的错误,但应用程序没有捕获错误,而是崩溃,因为null不是对象(评估'blob.data')Javascript null不是对象(正在计算';blob.data';)获取,javascript,reactjs,Javascript,Reactjs,我是JS新手,我正在尝试使用Fetch在react移动应用程序中使用服务。 我想以某种方式捕获由于没有连接或无法访问服务器而导致的错误,但应用程序没有捕获错误,而是崩溃,因为null不是对象(评估'blob.data') 另一件需要记住的事情是,如果应用程序确实可以访问互联网或服务器,那么它就可以完美地工作 您可以使用此函数处理提取错误 import GlobalURL from './Url'; function handleFetchErrors (response) { if (!r
另一件需要记住的事情是,如果应用程序确实可以访问互联网或服务器,那么它就可以完美地工作 您可以使用此函数处理提取错误
import GlobalURL from './Url';
function handleFetchErrors (response) {
if (!response.ok) throw Error(response.statusText)
return response
}
export const getMailAvailability = async (mail) => {
let url = GlobalURL + mail;
return fetch(url, {
method: 'GET',
headers: {},
})
.then(res => handleFetchErrors(res))
.then(data => data.json())
.catch((error) => console.log("error ", error))
}
在第一个
then
块中,该参数不是data
,而是HTTP响应对象。我猜很有可能您实际上没有JSON响应,这意味着您无法对其调用.JSON()
。确保内容应用程序标题设置正确并检查响应该语言中引入了async/await
功能,因此您无需编写.then()
和.catch()
处理程序。您可以只编写看起来像普通的旧同步代码的代码。事实并非如此,但它避免了调用的混乱问题在于您使用了async/await
以及Promise
上的then
和catch
等流畅方法。使用一种或另一种方法,尤其是在这样一个小的方法中,但不能没有很好的理由同时使用这两种方法。我不知道!谢谢你的提示,下次我会记住的。不过,改变这一点并没有解决我的问题,我设法让它在下载Axios并相应地使用它时起作用。谢谢你的帮助!谢谢重播!但这并没有解决我的问题。。。当我关闭后端并尝试调用此方法时,错误仍然存在:(
import GlobalURL from './Url';
function handleFetchErrors (response) {
if (!response.ok) throw Error(response.statusText)
return response
}
export const getMailAvailability = async (mail) => {
let url = GlobalURL + mail;
return fetch(url, {
method: 'GET',
headers: {},
})
.then(res => handleFetchErrors(res))
.then(data => data.json())
.catch((error) => console.log("error ", error))
}