1. 程式人生 > >在ABP的Web層中實現復雜請求跨域訪問

在ABP的Web層中實現復雜請求跨域訪問

ces 跨域 clas 實現 control api markdown access 處理

在最近的項目中,後端使用ABP,前端采用React,前後端完全分離。其中大部分接口都通過WebApi層調用,項目中未使用Session。但最後在做一個留言的驗證碼時,使用了Session驗證的方式,所以將驗證碼請求與校驗功能放在了Web層。由於測試階段前後端不同域,涉及到跨域請求的問題。跨域問題可以通過代理等手段解決,但是也可以在後端做些簡單的修改來進行實現。WebApi的跨域處理比較簡單,有官方給出的解決方案。但是Web層一般不涉及跨域,所以自己進行了探索實現。

一、常見方案

  1. 在web.config中添加配置

    <system.webServer>
     <httpProtocol> 
       <customHeaders> 
      <add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET"/> 
      <add name="Access-Control-Allow-Headers" value="x-requested-with"/> 
      <add name="Access-Control-Allow-Origin" value="*" /> 
    </customHeaders> 
     </httpProtocol> 
    </system.webServer>
  2. 在被訪問的控制器上加上AllowCrossSite的Attribute

在ABP的Web層中實現復雜請求跨域訪問