Javascript .NETWebAPI调用被AngularJSUI路由器截获,返回HTML而不是调用API

Javascript .NETWebAPI调用被AngularJSUI路由器截获,返回HTML而不是调用API,javascript,angularjs,asp.net-web-api,Javascript,Angularjs,Asp.net Web Api,我有一个angularjs应用程序,它位于MVC5应用程序和WEB API后端之上。我正在使用UI路由器进行Angular js路由,现在,我已经删除了所有$urlRouterProvider.when和$urlRouterProvider.others调用,但是当我尝试执行$http:get时。。。它返回数据对象中的默认主页,而不点击服务 我的路线是这样的: (function () { angular.module("OdinSPA") .config([ "$url

我有一个angularjs应用程序,它位于MVC5应用程序和WEB API后端之上。我正在使用UI路由器进行Angular js路由,现在,我已经删除了所有$urlRouterProvider.when和$urlRouterProvider.others调用,但是当我尝试执行$http:get时。。。它返回数据对象中的默认主页,而不点击服务

我的路线是这样的:

(function () {
angular.module("OdinSPA")
    .config([
        "$urlRouterProvider", "$stateProvider", "$httpProvider", "$locationProvider", function ($urlRouterProvider, $stateProvider, $httpProvider, $locationProvider) {
            $locationProvider.hashPrefix("!").html5Mode(true);
            $stateProvider
                .state("start", {
                    url: "/start",
                    templateUrl: "/Search/dashboard"
                })
                .state("guru", {
                   ...
                });


            $httpProvider.interceptors.push("AuthHttpResponseInterceptor");
        }
    ]);
})();
我的angularjs服务是

                function updateHistory() {
                return $http.get(urlBase + "/" + textUpdate.Id + "/standardreport/history", textUpdate).
                    success(function(data, status, headers, config) {
                        logoutResponse(data, status, headers, config);
                    }).
                    error(function (data, status, headers, config) {
                        logoutResponse(data, status, headers, config);
                    });
            };
但是数据参数中返回的只是主页的整个HTML(我不会发布,因为它毫无意义)和一个200状态码


只有一篇文章提到了这个问题,但唯一的答案是由同一个人写的,并且讨论了EF,我不认为这是这里的问题

对于遇到“完全”相同问题的其他人,我将在这里发布我的无脑时刻,这样其他人就不会浪费时间了

这里发生的是到webAPI的路由使用GUID作为ID,结果是后端更改为使用int

因此,WebAPI中的路由显示“不是有效的路由伙伴,这里有默认页面和200状态”。。。。但不给fiddler或你的代码任何指示,它已经做到了这一点

因此,如果您有这个问题,请检查您的MVC(而不是UI路由器)路由,并双重/三重检查任何内容


我得出的结论是,这不能因为没有人在网上讨论这个问题而变得狭隘。。。如果你遇到这样的问题,通常是因为你错过了一些简单的事情,就像我一样

我还应该补充一点,这与HTML5模式也没有关系,这没有什么区别,,,,更新:如果我添加routes.IgnoreRoute(“api/{*pathInfo}”);对于我的MVC路由配置,我得到了一个404错误,所以看起来这可能是一个MVC问题,它只是将请求重定向到主页,实际上不是角度拦截。。。。。不确定。。。。感谢您的帮助!好的(~red faced~)这实际上与Angular无关,但与MVC路由以及我使用错误的ID格式有关,在fiddler或其他地方没有发现重定向,因此当web api说“不,这不是有效的路由”时,它只会用200…将您扔回默认url。。。。。不能说这是有史以来最直观的设计!!