Я настраиваю конечную точку WebAPI для своего API, но мне трудно получить мои вызовы AngularJS для моего метода PostRegister.
WebAPI и Angular находятся на отдельных сайтах.
В Startup.cs у меня есть:
public void Configuration(IAppBuilder app)
{
ConfigureOAuth(app);
var config = new HttpConfiguration();
WebApiConfig.Register(config);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app.UseWebApi(config);
}
private void ConfigureOAuth(IAppBuilder app)
{
var oAuthServerOptions = new OAuthAuthorizationServerOptions
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString(Paths.TokenPath),
AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(30),
Provider = Kernel.Get<IOAuthAuthorizationServerProvider>()
};
app.UseOAuthAuthorizationServer(oAuthServerOptions);
OAuthBearerOptions = new OAuthBearerAuthenticationOptions();
app.UseOAuthBearerAuthentication(OAuthBearerOptions);
}
Затем на контроллере у меня есть мой метод, который позволяет анонимно:
[AllowAnonymous]
public bool PostRegister(UserSignupForm form)
{
...
}
Я также обновил web.config:
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
На стороне Angular я делаю простой вызов $http.post:
saveRegistration: function (registration) {
return $http.post(baseUrl + '/api/signup/register', registration).then(function (response) {
return response;
});
}
При выполнении вызова с использованием почтового оператора я получаю успешный ответ, но при выполнении того же вызова из Angular я получаю ошибку 405.
Сайт образца BitOfTech отправляет одни и те же заголовки запросов, но может получить заголовки Access-Control-Allow-XXX
Я обновил свой код, чтобы выполнить Аутентификация на основе токена с использованием ASP.NET Web API 2, Owin и Identity