在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
。
谢谢,伙计。我会带这个,看看是否可行 –
这是解决方案,非常感谢这么多人! –