2017-10-20 1 views
1

저는 백엔드 개발자가 아니므로 충분한 정보를 제공하지 않으면 미리 사과드립니다. 백엔드 개발자가 내가하려는 일을 이해하는 데 도움이되는 리소스를 찾으려고합니다.ASP.NET 웹 양식의 특정 URL에 CORS 사용

ASP.NET Web Forms을 사용하여 작성된 웹 응용 프로그램의 RSS 피드에 AJAX GET 요청을 보내려고합니다. 그러나 Cross Origin Security 때문에 요청이 차단됩니다. RSS 피드와 연결된 경로에 CORS를 사용하고 싶습니다 (/page/rss/{id}). 그게 내가 원하는 것이 아니다 전체 프로젝트를 위해 그것을 가능하게

<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> 

그러나 :

내가 사용하는 우리의 webconfig에서 CORS을 가능하게 할 수 있었다. 우리의 경로는 다음과 같은 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 Forms의 특정 경로에서 CORS를 활성화하는 방법은 무엇입니까? 누군가가 우리를 도울 수있는 자원의 방향으로 나를 지적 할 수 있다면 그것은 좋을 것입니다. 더 이상 필요한 정보가 있으면 기꺼이 제공합니다. 감사!

답변

3

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

그게 해결책 이었어, 정말 고마워! –

관련 문제