When trying to POST json to Asp.net web api server using $http its returning the following error
Response for preflight has invalid HTTP status code 405
OR
MVC web api: No ‘Access-Control-Allow-Origin’ header is present on the requested resource
Following is the solution for above problem
Cors
I installed Cors in my project using nu-get command line
Install-Package Microsoft.AspNet.WebApi.Cors
and added the following code in WebApiConfig.cs file from App_Start folder.
var enableCorsAttribute = new EnableCorsAttribute("*",
"Origin, Content-Type, Accept",
"GET, PUT, POST, DELETE, OPTIONS");
config.EnableCors(enableCorsAttribute);
and removed the following from the web config
<remove name="X-Powered-By" />
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Accept, Content-Type, Origin" />
<add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, OPTIONS" />