I\'m using Angular and ASP.NET API. The issue I\'m facing: when I add CORS in the API code, it works on Internet Explorer but does not work on Chrome and Firefox.
Here i
Chrome and Firefox use what is called a pre-flight check using the "OPTIONS" verb.
So, you have to add "OPTIONS" to the allowed methods in the web.config. You also may have to add some code to the Application_Begin request, like this answer suggests: Handling CORS Preflight requests to ASP.NET MVC actions
Here are some resources for CORS:
IIS hijacks CORS Preflight OPTIONS request
http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api
I had the same issue. After I put the exact domain instead of * (see below), it worked for me.
var CorsAttribute = new EnableCorsAttribute("https://www.mywebsite.com","", ""); config.EnableCors(CorsAttribute);
I got this issue because I put the app.UseCors after ConfigureOAuth.  Change the order fix the problem.
    public void Configuration(IAppBuilder app)
    {
        HttpConfiguration config = new HttpConfiguration();
        app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
        ConfigureOAuth(app);
        WebApiConfig.Register(config);
        // Used to put this line after ConfigureAuth(app), 
        // app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
        app.UseWebApi(config);
    }
Here is the detail in my case:
\token.\token request.You are setting CORS twice. I think that is the issue.
Please remove any one CORS settings. You can either remove it from web.config or from WebApiConfigFile.cs.
All other solutions provided for webAPI. This solution is for when you using webservice(.asmx) as API
Remove 'Access-Control-Allow-Origin' details from either in Global.asax.cs file's begin_request function or in web.config. Because this setting must be in one place only