1. 程式人生 > WINDOWS開發 >Api跨域設定

Api跨域設定

跨域設定:(服務端)
webconfig檔案中,system.webServer節點下新增


 <!--跨域請求:三個配置資訊-->
    <httpProtocol>
      <customHeaders>
        <!--響應型別 (值為逗號分隔的一個字串,表明伺服器支援的所有跨域請求的方法)-->
        <add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS"/>
        <!--響應頭設定(Content-Type:只限於三個值application/x-www-form-urlencoded、multipart/form-data、text/plain)-->
        <add name="
Access-Control-Allow-Headers" value="x-requested-with,content-type"/> <!--如果設定 Access-Control-Allow-Origin:*,則允許所有域名的指令碼訪問該資源--> <add name="Access-Control-Allow-Origin" value="*" /> <!--<add name="Access-Control-Allow-Origin" value="http://domain1.com,http://domain2.com
" /> 設定允許跨域訪問的網址--> </customHeaders> </httpProtocol> Global.asax 檔案中配置跨域 /// <summary> /// 跨域設定 /// </summary> protected void Application_BeginRequest() { //OPTIONS請求方法的主要作用: //1、獲取伺服器支援的HTTP請求方法;也是黑客經常使用的方法。
//2、用來檢查伺服器的效能。如:AJAX進行跨域請求時的預檢,需要向另外一個域名的資源傳送一個HTTP OPTIONS請求頭,用以判斷實際傳送的請求是否安全。 if (Request.Headers.AllKeys.Contains("Origin") && Request.HttpMethod == "OPTIONS") { //表示對輸出的內容進行緩衝,執行page.Response.Flush()時,會等所有內容緩衝完畢,將內容傳送到客戶端。 //這樣就不會出錯,造成頁面卡死狀態,讓使用者無限制的等下去 Response.Flush(); } } 請求不成功的原因: 1.路由不正確 2.請求的型別不匹配(get,post,put,delete) 3.引數個數和型別不匹配