0
這個問題正在讓我失望,無論我嘗試了什麼,我似乎都無法修復它。 我有一個Angular 4應用程序發送Http請求到.net WEB Api。在IIS Express上(通過Visual Studio 2013),一切正常,包括Get,Put和Post方法。只要我在IIS服務器或本地IIS上配置Web Api,Get方法仍在工作,但Put和Post停止工作。405方法不允許.Net Web Api
我的要求:
headers.append('Content-Type', 'application/json');
return this.http.put('http://iisserver/dbServerMonitor/api/server/updateServer', this.serversService.getServer(index), {headers: headers});
WebConfig.Cs
public static void Register(HttpConfiguration config)
{
//Enable cors
var cors = new EnableCorsAttribute("*", "accept, accesstoken, autorization, cache-control, pragma, content-type, origin", "GET, PUT, POST, DELETE, OPTIONS");
// Web API configuration and services
//var cors = new EnableCorsAttribute("*", "*", "*");
//config.MessageHandlers.Add(new CorsHandler());
config.EnableCors(cors);
// Web API routes
config.MapHttpAttributeRoutes();
config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
控制器:
[HttpPut]
[Route("updateServer")]
public HttpResponseMessage updateServer([FromBody] Server server)
{
....code
而且我也有在控制器:
[HttpOptions]
public HttpResponseMessage Options()
{
return new HttpResponseMessage { StatusCode = HttpStatusCode.OK };
}
我嘗試了一切,從更改標題,完全從請求代碼中刪除它們,處理Web配置xml文件上的CORS,但最終它只能在cs文件上工作。我對如何解決這個問題完全無能爲力。
編輯:擺脫身份驗證後,我現在能夠成功地調用發佈和放在我的本地IIS上。但是,在另一個IIS服務器(相同域)上,我在Put和Post調用中獲得了404。請幫助。
它已經啓用,仍然無法正常工作。 –