在我们的角度应用程序中,有时我们会将http状态-1返回给我们。状态-1发生在关闭的弹出窗口上,因此用户不会受到影响,只会影响我们的日志。
我试图通过
来处理它 switch (response.status) {
case 0:
break;
case -1:
break;
case 401:
localStorageService.clearAll();
redirectToUrlAfterLogin.url = $location.path();
$location.path('/login');
中建议的内容
我们肯定会减少登录,但仍有一些HTTP -1状态代码。我应该采用不同的方式处理-1?
答案 0 :(得分:2)
当请求中止或超时时,请求将作为错误返回,状态为-1。
此外,小于-1的状态代码归一化为零。 -1通常意味着请求被中止,例如使用
config.timeout
。
timeout – {number|Promise}
- 超时(以毫秒为单位),或承诺 应该在解决时中止请求。
答案 1 :(得分:1)
根据我的经验,{{1}}状态的最常见原因是浏览器因违反Same Origin Policy.
而阻止了响应出于安全原因,浏览器会限制从脚本中发起的跨源HTTP请求。例如,XMLHttpRequest和Fetch遵循same-origin policy。因此,使用XMLHttpRequest或Fetch 的网络应用程序只能向自己的域发出HTTP请求。为了改进Web应用程序,开发人员要求浏览器供应商允许跨域请求。
跨域资源共享(CORS)机制为Web服务器提供跨域访问控制,从而实现安全的跨域数据传输。现代浏览器在API容器中使用CORS(例如XMLHttpRequest或Fetch)来降低跨源HTTP请求的风险。