在ASP.NET Web窗体的特定URL上启用CORE

在ASP.NET Web窗体的特定URL上启用CORE

问题描述:

我不是后端开发人员,所以如果我没有提供足够的信息,我会提前道歉。我只是想找到一些资源,这将帮助我的后端开发人员了解我正在尝试做什么。在ASP.NET Web窗体的特定URL上启用CORE

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

我可以使用,使我们的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> 

但是,这使得它对于整个项目是不是我想要的。

<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:我们的路线是在这样一个XML文件中定义的?如果有人能指点我一些能帮助我们的资源,那将是很棒的。如果您需要更多信息,我很乐意提供。谢谢!

我不确定你如何返回你的rss端点,但是如果你有权访问HttpContext对象,你可以用它来直接提供CORS头文件。

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

+0

谢谢,伙计。我会带这个,看看是否可行 –

+0

这是解决方案,非常感谢这么多人! –