XMLHttpRequest
поставляется с собственным обработчиком ошибок onerror
. Обновление вашего примера
function sendValuesPageLoad(){
var xhr = new XMLHttpRequest();
xhr.onload = function () {
if (xhr.status === 200) {
// successful
} else {
// fails
throw new Error('Failed with status: ' + xhr.statusText);
}
}
xhr.onerror = function () {
throw new Error('There is a problem');
}
xhr.open("POST", "test.html?"+encodedString, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send();
}
Вы можете улучшить это, поместив его в Promise
и поймав любую ошибку
function sendValuesPageLoad(){
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.onload = function () {
if (xhr.status === 200) {
// successful
resolve(xhr.response);
} else {
// fails
reject(xhr.statusText);
}
}
xhr.onerror = function () {
reject(Error("Network Error"));
}
xhr.open("POST", "test.html?"+encodedString, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send();
}
}
// use case
sendValuesPageLoad().then(function(response) {
// use your response here
}).catch(function(error) {
// handle your error
});