为什么我会收到重复的Access-Control-Allow-Origin请求头?
为什么我会收到重复的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中没有添加任何添加标头的内容。