为什么我会收到重复的Access-Control-Allow-Origin请求头?

20 浏览
0 Comments

为什么我会收到重复的Access-Control-Allow-Origin请求头?

我有一个在VS 2015中从IIS Express运行的WCF Web服务应用程序,需要允许跨域请求。最初,我的客户端应用程序收到了一个消息:“响应预检请求未通过访问控制检查:所请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问源'http://localhost:1234'。”我添加了一个带有以下代码的Global.asax:

protected void Application_BeginRequest(object sender, EventArgs e)
    {
        // 确保Web服务允许来自某些来源的跨站脚本
        HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "http://localhost:1234");
        if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
        {
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "POST, PUT, OPTIONS");
            //HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type");
            HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
            HttpContext.Current.Response.End();
        }
    }

现在,当我尝试从客户端调用服务时,我收到了一个消息:“'Access-Control-Allow-Origin'标头包含多个值'http://localhost:1234, *',但只允许一个。因此,不允许访问源'http://localhost:1234'。”因此,没有标头是不够的,但一个标头变成了两个。为什么会这样?

注意:我在web.config中没有添加任何添加标头的内容。


   
 

0