国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Javascript實現跨域后臺設置攔截的方法詳解

2024-05-06 15:13:25
字體:
來源:轉載
供稿:網友

本文主要給大家介紹了關于Javascript跨域后臺設置攔截的相關內容,分享出來供大家參考學習,話不多說了,來一起看看詳細的介紹吧。

子域名之間互相訪問需要跨域

結論放在開頭:

1.服務端必須設置允許跨域

2.客戶端帶cookie需要設置 withCredentials

3.無論服務端是否允許跨域,該request都會完整執行

4. options 預請求需要設置返回空,不然requestMapping沒有支持該方法則出錯

環境搭建

需求

首先需要搭建兩個環境。一個是提供API的server A,一個是需要跨域訪問API的server B。

Server A提供了一個api。完整的請求request是:

https://local.corstest.com.net:8443/contentmain/getDepositsRoomAndRatePlanInfo.json?htid=759&_=1490855801818

Server B有個頁面page:

http://cros.corstest.com.net:3001/test.html

并且這個page需要請求server A的api。

但由于跨域保護,請求失敗:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'xxxxx' is therefore not allowed access.

修改host

首先本地配置兩個指向127.0.0.1的host,方便互相跨域。

127.0.0.1 local.corstest.com.net 127.0.0.1 cros.corstest.com.net

啟動項目A,方便提供API。

至于項目B,測試跨域只要寫個html靜態頁面即可。那么就寫一個test.html,并通過一個工具發布:

 browser-sync 

安裝

npm install -g browser-sync

本地啟動一個test.html

browser-sync start --server --files "*.html" --host "cros.corstest.com.net" --port 3001

關于跨域CORS

ruanyifeng 的文章里說瀏覽器將CORS請求分成兩類:簡單請求(simple request)和非簡單請求(not-so-simple request)。

其中同時滿足一下2種標準即為簡單跨域:

1) 請求方法是以下三種方法之一:

HEAD GET POST

2)HTTP的頭信息不超出以下幾種字段:

Accept Accept-Language Content-Language Last-Event-ID Content-Type:只限于三個值application/x-www-form-urlencoded、multipart/form-data、text/plain

而其他情況,非簡單請求是那種對服務器有特殊要求的請求,比如請求方法是  PUT 或 DELETE ,或者 Content-Type 字段的類型是 application/json 。非簡單請求的CORS請求,會在正式通信之前,增加一次HTTP查詢請求,稱為"預檢"請求(preflight),即 options 請求。

關鍵

跨域的關鍵是瀏覽器獲得服務器的認可,而服務器的認可就是header里的 Access-Control-Allow-Origin 。瀏覽器通過比較服務端返回的response中是否包含這個字段,以及包含這個字段的內容是否是當前網址來確定是否跨域。也就是說繞過瀏覽器是可以不用跨域的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 乐至县| 和林格尔县| 尚义县| 玛多县| 昌宁县| 云浮市| 桃园县| 土默特左旗| 金堂县| 东海县| 利津县| 中西区| 永丰县| 大厂| 富裕县| 砀山县| 荣成市| 平阳县| 南平市| 松滋市| 公安县| 乌审旗| 盱眙县| 泸定县| 新化县| 金阳县| 绥阳县| 翼城县| 开远市| 乐清市| 闵行区| 三穗县| 萨迦县| 象山县| 锡林郭勒盟| 资阳市| 洪洞县| 成都市| 临漳县| 云浮市| 易门县|