Javascript 405(不允许使用方法)当#使用WebApi从AngularJS中的URL中删除

Javascript 405(不允许使用方法)当#使用WebApi从AngularJS中的URL中删除,javascript,asp.net,angularjs,asp.net-mvc-4,asp.net-web-api,Javascript,Asp.net,Angularjs,Asp.net Mvc 4,Asp.net Web Api,我正在使用angular js和web api创建一个应用程序,当我运行该应用程序时,我会得到#in URL。为了从URL中删除#,我们需要在angular config中添加以下内容,几乎所有内容都建议添加: $locationProvider.html5Mode(true); 所以我添加了这样的内容,如下所示 angular.module('myapp', ['ui.router']) .config(function (function ($stateProvider, $urlRo

我正在使用angular js和web api创建一个应用程序,当我运行该应用程序时,我会得到#in URL。为了从URL中删除#,我们需要在angular config中添加以下内容,几乎所有内容都建议添加:

$locationProvider.html5Mode(true);
所以我添加了这样的内容,如下所示

angular.module('myapp', ['ui.router'])
  .config(function (function ($stateProvider, $urlRouterProvider, $locationProvider) {) {
        stateProvider
          .state('home', {
            url: '/home',
            controller: "homeController",
            templateUrl: "/Modules/Views/home.html"
        });

        $urlRouterProvider.otherwise('/login');

        $locationProvider.html5Mode(true);

});
然后我还在索引(master)文件中的head标记中添加了base标记,如下所示

<base href="/" />
当我这么做的时候,我得到了HTTP错误404.0-在我重新加载/刷新页面时找不到,然后我发现有人建议在web.config中添加以下代码

<system.webServer>
    <rewrite>
     <rules> 
      <rule name="Main Rule" stopProcessing="true">
        <match url=".*" />
        <conditions logicalGrouping="MatchAll">
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />                                 
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
        <action type="Rewrite" url="/" />
      </rule>
    </rules>
    </rewrite>
</system.webServer>

但是,当我删除web.config中添加的代码时,WebApi服务可以正常工作,但问题是,当我重新加载时,如果我删除web.config中添加的代码,会再次出现404错误

任何人都可以在这方面帮助我


感谢您在adv..

中上传您试图点击的WebAPI中的方法。您要路由到的方法不接受HTTP/POST。我没有使用任何方法,我无法进入应用程序本身。正如我们所知,使用WebApi
token
我们获得了访问令牌,我在
GrantResourceOwnerCredentials
方法中保留了断点,但它也没有达到该断点。下面是Startup.Auth.cs
TokenEndpointPath=new PathString(“/Token”)、Provider=new applicationAuthProvider(PublicClientId)、AuthorizeEndpointPath=new PathString(“/api/Account/ExternalLogin”)、AccessTokenExpireTimeSpan=TimeSpan.FromDays(14)中的代码
Ok,您正在使用ASP.Net标识。这是您的整个OAuth服务器选项配置吗?我看不出AllowInsueCreHTTP=true。你的请求没有使用SSL。是的,它也在那里。。我没有抄
TokenEndpointPath=new PathString(“/Token”)、Provider=new ApplicationAuthProvider(PublicClientId)、AuthorizeEndpointPath=new PathString(“/api/Account/ExternalLogin”)、AccessTokenExpireTimeSpan=TimeSpan.FromDays(14),AllowInsecureHttp=true
尝试将
添加到url重写中。
<system.webServer>
    <rewrite>
     <rules> 
      <rule name="Main Rule" stopProcessing="true">
        <match url=".*" />
        <conditions logicalGrouping="MatchAll">
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />                                 
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
        <action type="Rewrite" url="/" />
      </rule>
    </rules>
    </rewrite>
</system.webServer>