當前位置:妙知谷 >

遊戲數碼 >電腦 >

CORS .net 跨域解決方案

CORS .net 跨域解決方案

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)中的任何一種,所以是複雜請求。

  • 文章版權屬於文章作者所有,轉載請註明 https://miaozhigu.com/sm/diannao/gov8my.html