.Net Core 設定 Middleware 引發前端錯誤問題
Contents
Http Status Code 401 前端 axios status 抓到狀態是 0 是怎麼一回事?
問題
由於前端說我回錯誤沒有抓到 HTTP Status Code,說他的 axios 抓到 status 都為 0。但是我看開發著工具有顯示 status 為 0。這到底是什麼事情?(剛好農曆七月遇到鬼事)
後來改用 fetch 原生語法發生下面錯誤。和相關 NetWorkErr
錯誤。
沒設定到 CORS
我看大多數文章說沒有設定 Access-Control-Allow-Origin: *
所造成的問題。所以 Network 401 但因為沒有 Access-Control-Allow-Origin: *
,所以沒有錯誤。axios 沒寫出錯誤可能是 try catch 處理掉,所以沒什麼資訊。 status 才會得到是 0。
我有設定 CORS 阿
但我 .Net Core 有設定這個。只發生錯誤時候不會傳Access-Control-Allow-Origin: *
|
|
順序
詳細可以看[Day03] Middleware- 我與 ASP.NET Core 3 的 30天 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
CORS 需要放在 authentication 上面,這樣可以解決上面那個問題。之前一直在想順序錯了會發生什麼,但經過這件事情,我大概想得出來是什麼原因造成的。CORS在後面的話,Authentication MiddleWare 驗證使用者不過會回傳,當下CORS MiddleWare 就不會經過。所以這一點需要特別注意!