Javascript 角度:$HTTP404错误处理

Javascript 角度:$HTTP404错误处理,javascript,jquery,html,angularjs,Javascript,Jquery,Html,Angularjs,我有一个包含2 ng的HTML。考虑在服务器中是否存在一个NG包括SRC。到目前为止,它只会加载空白html,在浏览器控制台中会显示http-404文件未找到 所以在本例中,我只想将默认错误页(存在于服务器中)加载到特定的div中,即一半显示默认错误页,另一半显示通过nginclude加载的正确div 我的逻辑是,我使用一个http拦截器,在这里我截获所有http调用。每当发生404时,我想返回默认的错误页面,该页面必须只加载到div中。因此,这就像模拟一个正确的http调用,但发送一个错误页面

我有一个包含2 ng的HTML。考虑在服务器中是否存在一个NG包括SRC。到目前为止,它只会加载空白html,在浏览器控制台中会显示http-404文件未找到

所以在本例中,我只想将默认错误页(存在于服务器中)加载到特定的div中,即一半显示默认错误页,另一半显示通过nginclude加载的正确div

我的逻辑是,我使用一个http拦截器,在这里我截获所有http调用。每当发生404时,我想返回默认的错误页面,该页面必须只加载到div中。因此,这就像模拟一个正确的http调用,但发送一个错误页面,我认为必须将其加载到正确的div

但事实并非如此:)。我尝试使用默认窗口。加载(“”)。但它会加载到页面顶部,并跨页面显示

或者我应该捕获div id(如果是,如何捕获?),然后tat id加载默认错误HTML吗


需要您的思考。

要处理这种情况,您可以使用http拦截器(在此处找到文档:)

拦截器必须捕获404响应,从服务器加载404.html页面,然后 将其与状态代码200一起设置为初始响应的数据

我创建了一个项目,展示了如何解决这个问题

存储库:


仔细看看这个文件。

我做了类似的事情,在填充ng include值之前,通过$http直接传递所需的ng include url

$http({ url: url, method: "GET", cache: $templateCache}).success(function(data) {
        /* there was a template for this url - set the $scope property that 
         * the ng-include is using
         */
        $scope.templateUrl = url;
    }).error(function () {
        // there was not a template for this url - set the default one
        $scope.templateUrl = defaultUrl;
    });

这里的诀窍是将$templateCache作为cache参数传递给$http-这意味着获取的url存储在ng include使用的同一个缓存中,因此当您找到一个有效的模板并在templateUrl属性中进行设置时,ng include不需要再次获取模板。

您是否有一个示例来说明您正在尝试执行的操作?也许是小提琴吧