Skip to main content
 首页 » 编程设计

c#之在 ASP.NET Web 窗体中对特定 URL 启用 CORS

2024年02月04日34shangdawei

我不是后端开发人员,所以如果我没有提供足够的信息,我会提前道歉。我只是想找到一些资源来帮助我的后端开发人员了解我正在尝试做什么。

我正在尝试向使用 ASP.NET Web 窗体构建的 Web 应用程序内部的 rss 提要发出 AJAX GET 请求。但是,由于跨源安全性,请求被阻止。我想为与我们的 RSS 提要 (/page/rss/{id}) 关联的路由启用 CORS。

我能够使用以下方法在我们的 webconfig 中启用 CORS:

<httpProtocol> 
    <customHeaders> 
        <add name="Access-Control-Allow-Origin" values="*" /> 
        <add name="Access-Control-Allow-Methods" values="GET" /> 
        <add name="Access-Control-Allow-Headers" values="Content-Type" /> 
   </customHeaders> 
</httpProtocol> 

但是,这为整个项目启用了它,这不是我想要的。我们的路由在 XML 文件中定义如下:

<namespace.routing> 
  <routings> 
    <route name="publishedPage" url="page/{PageName}" page="~/Default.aspx" /> 
  </routings> 
  <defaults> 
    <default url="http://blog.example.com" domain="example.com" page="page/homepage" /> 
  </defaults> 
</namespace.routing> 

那么,如何在 ASP.NET Web 窗体中的特定路径上启用 CORS?如果有人能给我指出一些对我们有帮助的资源的方向,那就太好了。如果您需要更多信息,我很乐意提供。谢谢!

请您参考如下方法:

我不确定您是如何返回 rss 端点的,但是如果您有权访问 HttpContext 对象,则可以使用它直接提供 CORS header 。

HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*"); 
HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Methods", "Get"); 
HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Headers", "Content-Type"); 

根据您的应用的年龄,您可能需要使用 AddHeader 而不是 AppendHeader。