首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET Web API 2 完整支援 CORS 跨域資源共享:原理、標頭與配置實務

     編輯:關於ASP.NET

CORS 簡介

跨域資源共享 (CORS) 為 W3C 標準,允許伺服器宣告允許哪些來源 (Origin) 進行跨域 AJAX 呼叫,打破瀏覽器同源策略限制。Web API 2 內建完整支援。

核心 HTTP 標頭

CORS HTTP 標頭總覽

  • 請求標頭:Origin、Access-Control-Request-Method、Access-Control-Request-Headers
  • 回應標頭:Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers、Access-Control-Allow-Credentials、Access-Control-Max-Age

兩種請求模式

1. 簡單請求

符合條件:GET/POST、Content-Type 為 application/x-www-form-urlencoded、multipart/form-data、text/plain、無自訂標頭。瀏覽器直接發送請求攜帶 Origin,伺服器回應 Access-Control-Allow-Origin 即可。

2. 預檢請求

不符合簡單請求條件時,瀏覽器先發送 OPTIONS 預檢請求,伺服器通過後才發送真實請求。可透過 Access-Control-Max-Age 快取預檢結果提升效能。

Web API 2 配置範例

// WebApiConfig.cs
public static class WebApiConfig {
  public static void Register(HttpConfiguration config) {
    var cors = new EnableCorsAttribute("https://allowed-domain.com", "*", "*");
    config.EnableCors(cors);
    // 或針對特定 Controller/Action 套用 [EnableCors] 屬性
  }
}

除錯提示

  • 檢查回應標頭是否包含 Access-Control-Allow-Origin
  • 確認預檢請求 (OPTIONS) 回應 200 OK 且標頭正確
  • 注意 Credentials 模式下 Allow-Origin 不能為 "*"
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved