为PUT方法配置CORS

时间:2018-07-05 12:59:23

标签: asp.net cors

我正在尝试为CORS配置Web.API。 GET方法可以成功运行,但由于某些原因不能PUT。

  

无法加载https://localhost:44399/api/Person/032342:   对预检请求的响应未通过访问控制检查:否   请求中存在“ Access-Control-Allow-Origin”标头   资源。因此,不允许原点“ https://localhost:44300”   访问。响应的HTTP状态代码为404。

我在WebApiConfig.cs中有以下代码

  config.MessageHandlers.Add(new CorsHandler());

如果我添加行

 config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

我将收到以下错误

  

无法加载   https://localhost:44399/api/Person/032342:   “ Access-Control-Allow-Origin”标头包含多个值“ *”,   https://localhost:44300',但只允许一个。起源   因此,不允许访问“ https://localhost:44300”。

我尝试遵循此处的建议,但没有成功:

The 'Access-Control-Allow-Origin' header contains multiple values

您知道为什么它抱怨多个值吗?

我还尝试将以下内容包含在Global.asax.cs中,但没有成功。

protected void Application_BeginRequest(Object sender, EventArgs e)
        {
            if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
            {
                HttpContext.Current.Response.AddHeader("Cache-Control", "no-cache");
                HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, HEAD,OPTIONS,POST,PUT");

                HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
                HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization, useXDomain");


                HttpContext.Current.Response.End();

                //HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
                //HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
            }
        }

0 个答案:

没有答案