2017-10-20 130 views
1

我不是後端開發人員,所以如果我沒有提供足夠的信息,我會提前道歉。我只是想找到一些資源,這將幫助我的後端開發人員瞭解我正在嘗試做什麼。在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文件中定義的?如果有人能指點我一些能幫助我們的資源,那將是很棒的。如果您需要更多信息,我很樂意提供。謝謝!

回答

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

這是解決方案,非常感謝這麼多人! –