Skip to content

Commit ecedf63

Browse files
leeyehwangxiao
authored andcommitted
fix: pass app-router error to request (#328)
fix #323
1 parent b7ea035 commit ecedf63

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/request.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ const createApiUrl = (route, className, objectId, method, dataObject) => {
145145
console.warn('Please use AV._config.APIServerURL to replace AV.serverURL, and it is an internal interface.');
146146
}
147147

148-
let apiURL = AV._config.APIServerURL;
148+
let apiURL = AV._config.APIServerURL || API_HOST.cn;
149149

150150
if (apiURL.charAt(apiURL.length - 1) !== '/') {
151151
apiURL += '/';
@@ -242,6 +242,11 @@ const refreshServerUrlByRouter = () => {
242242
setServerUrl(servers.api_server);
243243
return cacheServerURL(servers.api_server, servers.ttl);
244244
}
245+
}, error => {
246+
// bypass all non-4XX errors
247+
if (error.statusCode >= 400 && error.statusCode < 500) {
248+
throw error;
249+
}
245250
});
246251
};
247252

@@ -261,8 +266,8 @@ const setServerUrlByRegion = (region = 'cn') => {
261266
}
262267
}).then(() => {
263268
getServerURLPromise.resolve();
264-
}).catch(() => {
265-
getServerURLPromise.reject();
269+
}).catch((error) => {
270+
getServerURLPromise.reject(error);
266271
});
267272
} else {
268273
AV._config.region = region;
@@ -289,7 +294,7 @@ const AVRequest = (route, className, objectId, method, dataObject = {}, sessionT
289294

290295
checkRouter(route);
291296

292-
return getServerURLPromise.always(() => {
297+
return getServerURLPromise.then(() => {
293298
const apiURL = createApiUrl(route, className, objectId, method, dataObject);
294299
return setHeaders(sessionToken).then(
295300
headers => ajax(method, apiURL, dataObject, headers)

0 commit comments

Comments
 (0)