跨域問題之過濾器的坑

2021-10-01 12:37:07 字數 618 閱讀 1998

跨域問題在我們實際開發中前後端分離專案中會經常碰到。一般就是加個跨域註解,或者增加全域性配置來解決。但今天說說專案中碰到的一種跨域的形式。

首先我們要了解請求可以分為兩種請求:簡單請求非簡單請求。

非簡單請求在請求前會先發出乙個options請求去校驗一下。這個時候,我們加的跨域註解或者跨域配置檔案,會幫我們自動做一些操作。具體的比如往head裡插入一些對應欄位來標識這是允許跨域訪問的資訊。

這個時候出問題了,專案中往往我們會用過濾器去檢驗身份。而options請求裡是不會帶token的,自然而然的走身份校驗失敗的邏輯,而瀏覽器根據options請求的結果去判斷,發現head裡沒有所約定的字段,就會報跨域問題,然後你去看對應介面,發現有跨域註解,然後就莫名其妙的。相信大家看到這裡也知道為什麼會報跨域了。

解決方法也很簡單,在攔截那裡加了行判斷,如果是options請求就直接放行,這樣請求就會到介面裡去,介面的跨域註解會自動幫我們做處理。

ps:注意大小寫和單詞

JavaWeb之過濾器

對使用者請求進行統一認證 編碼轉換 對使用者傳送的資料進行過濾替換 轉換影象格式 對響應的內容進行壓縮 過濾器是乙個伺服器端的元件,它可以擷取使用者端的請求與響應資訊,並對這些資訊進行過濾。4.1 servlet 2.5request 使用者直接訪問頁面時,web容器將會呼叫過濾器 forward ...

HBase之過濾器

過濾器的型別很多,但是可以分為兩大類 比較過濾器,專用過濾器 過濾器的作用是在服務端判斷資料是否滿足條件,然後只將滿足條件的資料返回給客戶端 hbase 的基本 api,包括增 刪 改 查等。增 刪都是相對簡單的操作,與傳統的 rdbms 相比,這裡的查詢操作略顯蒼白,只能根據特性的行鍵進行查詢 g...

Swift之過濾器 filter

swift 提供了很多方便的函式來運算元組,比如 filter,map,reduce,flatmap 等.今天我們了解一下 filter 顧名思義 就是用來過濾的,這是 swift 為每個陣列提供的乙個新式 filter 用於選擇陣列元素中滿足某種條件的元素。假設有乙個陣列,接著想要建立乙個新的陣列...