关于此错误,有几个问题,但没有一个完全符合我的情况。让我解释一下:我正在使用create-react-app编写一些代码,该代码对外部服务器进行AJAX调用:
async ajaxCall(url) {
var objetorespuesta = null;
try {
let respuesta = await fetch(url);
if (respuesta.ok) {
objetorespuesta = {
"status": { status: "ok" },
"datos": await respuesta.json()
};
}
else {
objetorespuesta = {
"status": {
status: "error",
errorcode: respuesta.status,
errortext: respuesta.statusText
}
};
}
}
catch (e) {
console.log("Call failed!!");
objetorespuesta = {
"status": {
status: "error",
errorcode: "Error de red",
errortext: e
}
};
}
return objetorespuesta;
}
let url = "https://blablabla" //My URL here; edited out;
const objetorespuesta = this.ajaxCall(url);
for (let key in objetorespuesta) {
console.log("Mooooo: " + key + ": " + objetorespuesta[key]);
}
现在,在添加“ try / catch”块之前,我进入了控制台:
Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource.
The development server has disconnected. Refresh the page if necessary
我认为这是因为CORS,因为我不是在调用localhost,而是在调用外部URL。稍后再处理,但是暂时我决定添加“ try / catch”,以便代码捕获该错误并可以继续执行...
...除了不执行此操作。当错误发生时,什么也不会执行。我的意思是,如果该代码有效,则网络调用将失败,但是我会在控制台中收到带有返回对象变量的几个“ Mooooo”消息。相反,我得到的是:
Call failed!!
The development server has disconnected. Refresh the page if necessary.
似乎在网络调用失败后,开发服务器就断开了连接。
这是怎么回事?开发服务器失败,但是JS代码正在我的浏览器中执行,所以它应该没有影响,对吗?还是我的代码中缺少其他错误?