javascript - 分解 angular.js 中 404 响应的原因

标签 javascript angularjs

我有一个拦截器以 Angular 抓取我的 HTTP 错误,如下所示:

angular.module("app")
.factory("interceptor", function($q) {
  // omitted for brevity.
  responseError: function(response) {
    switch(response.status) {
      case 404:
        // here be the problem
        break;
      default:
        break;
    }
    $q.reject(response);
  }
})
.config(["$httpProvider",
  function($httpProvider) {
    $httpProvider.interceptors.push("interceptor");
  }
]);

我遇到的问题是 404 可能由多种原因引起。例如,缺少 CSS 表可能会导致 404 或图像丢失。但是,我特别针对的是给定路线的模板是否丢失并隔离这种情况。

是否可以分解 404 错误的原因并提取它是否是模板未找到错误?


编辑:我以 Angular 查看了 $route,并尝试获取当前路由的 templateUrl 并进行比较。

if(response.url == $route.current.templateUrl) { /** ... */ }

但是,当我包含它时,我得到了一个循环导入,而当我没有包含它时,我得到了一个循环导入。

最佳答案

我们假设模板有一个 .html 扩展名,并且是唯一具有该扩展名的对象。

angular.module("app")
.factory("interceptor", function($q) {
  // omitted for brevity.
  responseError: function(response) {
    switch(response.status) {
      case 404:
        // Check the config object, look for ".html"
        // in the url string
        if(response.config.url.indexOf('.html') !== -1){
          // It's an html document
        }
        break;
      default:
        break;
    }
    $q.reject(response);
  }
})
.config(["$httpProvider",
  function($httpProvider) {
    $httpProvider.interceptors.push("interceptor");
  }
]);

关于javascript - 分解 angular.js 中 404 响应的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28241474/

相关文章:

javascript - 使用 Javascript 从 Parse 访问 JSON 数据

javascript - 在 Angular JS 中动态地将类添加到 div

javascript - 如何在 angularjs 应用程序中注销时删除/清除存储在范围变量中的数据?

spring - CRUD在AngularJs和Spring中的应用

javascript - 选项卡内容无法正确呈现

javascript - 如何不让 Masonry 一次加载所有 div

javascript - ReactJs 将表单数据提交到屏幕

javascript - 使用 JavaScript 从文件夹/子文件夹动态加载所有图像

javascript - 如何使用 Angular 滚动滚动到元素?

javascript - AngularJS:事件回调不会在谷歌地图原生 map 标记上触发