Issue in Enabling CORS for Web API 1, .net 4.0

随声附和 提交于 2020-06-22 13:04:53

问题


I need to enable CORS for my Web API and I can't upgrade to Framework 4.5. I've tried to add the following to my Web.config to see if it worked, but it didn't:

<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Accept,Content-Type,X-Requested-With"/>

I am accessing the URL http://localhost:8484/api/values/ from ajax call

and getting bellow error

XMLHttpRequest cannot load http://localhost:8484/api/values. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 405.


回答1:


I found this simple solution by charanjit singh. It worked nicely especially if you are stuck with older visual studio 2010 , on .Net 4.0 and of course web api 1. Basically add this function to your Global.asax.cs

protected void Application_BeginRequest(object sender, EventArgs e)

{

    HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
    if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
    {
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods",
                     "GET, POST, PUT, DELETE");
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers",
                     "Content-Type, Accept");
        HttpContext.Current.Response.End();
     }
} 

ref. links: note you must scroll to the bottom comments for the answer. http://www.codeguru.com/csharp/.net/net_asp/using-cross-origin-resource-sharing-cors-in-asp.net-web-api.html




回答2:


Web API 1.0, you need to enable CORS support using the following statements in the Application_BeginRequest event handler of the Global.asax.cs file.

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", allowedOrigin);

Support for CORS can be enabled at three levels. These include the following:

Action level Controller level Global level

refer link



来源:https://stackoverflow.com/questions/43410390/issue-in-enabling-cors-for-web-api-1-net-4-0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!