【发布时间】:2015-01-13 12:53:07
【问题描述】:
我已经看到很多关于同一问题的问题,但我真的无法弄清楚我做错了什么。 当我向 InscricaoSecretaria/Salvar 方法发送请求时收到 405 错误。
这是我的配置文件:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MessageHandlers.Add(new AuthorizationHandler());
// Default Route Configuration
config.Routes.MapHttpRoute(
name: "DefaultApi2",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// Unity Container Configuration
IUnityContainer container = new UnityContainer();
container.RegisterType<BusinessContext>(new InjectionConstructor(ConfigurationManager.ConnectionStrings["HabileConnection"].ConnectionString));
config.DependencyResolver = new UnityResolver(container);
}
}
这是我的控制器
public class InscricaoSecretariaController : ApiController
{
[HttpPost]
public HttpResponseMessage Salvar(InscricaoSecretaria inscricao)
{
return null;
}
}
和 ajax 调用 (angularjs)。我正在使用角度模块的名为“salvar”的方法,该方法通过单击按钮触发。
"use strict";
(function(){
var restClient = angular.module("restClient", ["ngResource"]);
var serviceURL = "/habileapp/api/";
restClient.factory("InscricaoResource", ["$resource", function ($resource) {
return $resource(serviceURL + "InscricaoSecretaria", null, {
"recuperar": {
"method": "get"
},
"salvar": {
"method": "post",
"url": serviceURL + "inscricaoSecretaria/Salvar"
},
"finalizar": {
"method": "post",
"url": serviceURL + "inscricaoSecretaria/Finalizar"
}
});
}]);
})();
服务器响应此错误消息:
The requested resource does not support http method 'POST'.
编辑: 以下是一些请求标头:
Request URL:http://localhost/habileapp/api/inscricaoSecretaria/Salvar
Request Method:POST
Status Code:405 Method Not Allowed
【问题讨论】:
-
你能发布错误信息吗?
-
你发帖的方法是什么?您应该看一下 http 标头,有一些东西弄乱了请求的 URI。
-
@WhyCry 我已经更新了描述
-
@Fals 我正在使用帖子 :(
-
您发布任何数据吗?如果是,请提供样本数据。还要确保 AuhtenticationHanlder 没有造成这个问题。
标签: javascript c# asp.net angularjs asp.net-web-api