Ajax 跨域請求 問題

2021-10-23 21:53:23 字數 933 閱讀 1474

第一種現象:no 'access-control-allow-origin' header is present on the requested resource,並且the response had http status code 404

出現這種情況的原因如下:

解決方案: 後端允許options請求

第二種現象:no 'access-control-allow-origin' header is present on the requested resource,並且the response had http status code 405

這種現象和第一種有區別,這種情況下,後台方法允許options請求,但是一些配置檔案中(如安全配置),阻止了options請求,才會導致這個現象

解決方案: 後端關閉對應的安全配置

第三種現象:no 'access-control-allow-origin' header is present on the requested resource,並且status 200

這種現象和第一種和第二種有區別,這種情況下,伺服器端後台允許options請求,並且介面也允許options請求,但是頭部匹配時出現不匹配現象

比如origin頭部檢查不匹配,比如少了一些頭部的支援(如常見的x-requested-with頭部),然後服務端就會將response返回給前端,前端檢測到這個後就觸發xhr.onerror,導致前端控制台報錯

解決方案: 後端增加對應的頭部支援

第四種現象:heade contains multiple values '*,*'

表現現象是,後台響應的http頭部資訊有兩個access-control-allow-origin:*

說實話,這種問題出現的主要原因就是進行跨域配置的人不了解原理,導致了重複配置,如:

參考ajax 跨域,這應該是最全的解決方案了_果果的部落格-csdn部落格

ajax請求跨域問題

跨域是值跨網域名稱.網域名稱 記憶網路電腦ip很難記,就給它取了乙個名字來記憶,這個名字就要網域名稱,網域名稱最終要被轉換為ip.乙個系統訪問另乙個系統才會存在跨域,同系統訪問不存在跨.跨域原因說明 示例 網域名稱不同 www.jd.com 與 www.taobao.com 網域名稱相同,埠不同 l...

Ajax跨域請求

一 什麼是跨域請求 網域名稱它由http 協議 www 子網域名稱 baidu 主網域名稱 以及8080 埠號 組成,當另乙個網域名稱與其中任意一項對應不等的話,那麼我們說兩個網域名稱就是跨域的。如的頁面上我們要請求資料到上去,那麼就說這種請求是跨域請求。二 為什麼要講跨域請求 因為在一般的請求條件...

Ajax 跨域請求

隨筆 71 文章 0 客戶端js 服務端 1 string callbackfunname context.request callbackparam 2 context.response.write callbackfunname ps 客戶端的jsonp引數是用來通過url傳參,傳遞jsonpc...