關閉→
當前位置:趣知常識網>遊戲數碼>電腦>CORS .net 跨域解決方案

CORS .net 跨域解決方案

趣知常識網 人氣:2.17W

IIS部署wcf rest專案(或 web專案)時,CORS跨域配置,並完美解決POST帶引數請求問題

操作方法

(01)如圖:開啟IIS,找到 “HTTP響應標頭”

CORS  跨域解決方案

(02)新增如下配置資訊:Access-Control-Allow-Methods : GET,POST,PUT,DELETE,HEAD,OPTIONSAccess-Control-Allow-Origin : *Access-Control-Allow-Headers : Content-Type,api_key,Authorization,X-Requested-With如下圖所示:(注:如是J2EE專案,可在統一URL攔截器中,eader("Access-Control-Allow-Headers", "Content-Type,api_key,Authorization,X-Requested-With");eader("Access-Control-Allow-Method", "GET,POST,PUT,DELETE,HEAD,OPTIONS");eader("Access-Control-Allow-Origin", "*");)注eader("Access-Control-Allow-Origin", "*"); “ *”可替換為只允許的域,如:"http://localhost:8080/*"

CORS  跨域解決方案 第2張

(03)此時已經解決 GET 請求問題可成功返回資料。POST請求比較複雜,跨域帶參請求時瀏覽器會先發一個OPTIONS請求(就是這個問題困擾了我兩天)

(04)解決方法如下:同一個請求需要兩個相同請求地址的方法,一個標記為“POST”,另一個標記為“OPTIONS“,實體方法為標記”POST“的方法,這裡”OPTIONS“方法不需要做任何邏輯操並且返回值為void即可(其實OPTIONS請求為瀏覽器的校驗,髮帶引數的POST請求時瀏覽器會先發一個OPTIONS請求,檢驗request 頭資訊和response頭資訊一致後才真正發起POST請求)。 程式碼如下圖所示:(JAVA同理)

CORS  跨域解決方案 第3張

(05)jquery Ajax請求如下所示:注意其中的contentType : 'text/json'和data:'json格式的字串'

(06)到此 CORS 跨域Ajax請求完全解決。

特別提示

這裡的content-type不屬於(application/x-www-form-urlencoded,multipart/form-data,text/plain)中的任何一種,所以是複雜請求。