首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure WebApp Cors不添加Cors标头

Azure WebApp Cors不添加Cors标头
EN

Stack Overflow用户
提问于 2017-01-09 06:08:04
回答 2查看 11K关注 0票数 4

我有一个Owin WebAPI2 .NET应用程序,我在Azure的AppService上托管它。

我想添加CORS支持使用Azure作为在本文中。看起来很简单,您只需在列表中添加一个原产地站点,如:http://screencast.com/t/r2ATq4u5

现在,我希望响应头包含这个允许的开始。

但是,当我使用Fiddler:http://corstestqm.azurewebsites.net/breeze/restaurantsbreeze/basictest检查CORS头时,它不包括在响应头中。

我尝试过的步骤:

  • 去掉我的解决方案中的所有CORS Nuget库,以及API项目中CORS代码的所有跟踪。
  • 部署到全新的AppService上
  • 启用Owin Cors AllowAll

所有这些都没有任何效果。(即)响应不包含Azure中指定的CORS头)。

我是不是错过了一些最基本的东西?

UPDATE I进一步简化了问题:在VS2015中,我创建了一个新的API项目,并将其推送到http://corstestbasicap2.azurewebsites.net/api/values/中,没有进行任何更改(即。它不应该启用CORS )。

然后,我使用测试-Cors工具来访问该API。它不会得到预期的CORS错误。然后进入Azure,添加一个虚拟URL (例如http://www.example.com),并再次尝试CORS测试。它应该失败,因为Azure应该只允许example.com通过。不过,它很好用。

然后,我将在Azure中再次编辑CORShttp://www.test-cors.org添加到http://www.example.com下面(因此应该让它通过),现在标头会按预期返回Access-Control-Allow-Origin:http://www.test-cors.org

但这毫无意义?当"http://www.test-cors.org“不在允许的起源中时,以前的调用肯定会失败吗?它似乎没有做任何有用的事情?!

EN

回答 2

Stack Overflow用户

发布于 2017-01-09 07:46:45

您可以通过添加web.config下面的配置来实现这些目标:

代码语言:javascript
复制
<system.webServer>
     <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*"/>
        <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept,Authorization"/>
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS"/>
      </customHeaders>
    </httpProtocol>
</system.webServer>

在global.asax中:

代码语言:javascript
复制
protected void Application_BeginRequest()
{
  if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS")
  {
    Response.Flush();
  }
}

如果您想要从门户获得控制,请查看下面的图像:

注意,根据API 文档,您不能在一个API应用程序中同时使用Web和API。您必须清理有关Web的项目

不要在一个API应用程序中同时使用和。将优先考虑,而Web将没有任何影响。例如,如果在App中启用一个源域,并在Web API代码中启用所有源域,则Azure API应用程序将只接受您在Azure中指定的域的调用。

票数 6
EN

Stack Overflow用户

发布于 2018-05-10 10:37:04

我的问题是我不小心把http而不是https放到Azure AD B2C自定义页面配置刀片中.在换到https之后,它就像一种魅力。

在Azure Web App / Azure API上部署时缺少CORS头

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41541917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档