一次提交觸發兩次請求

2021-09-19 07:36:58 字數 494 閱讀 6821

我們公司的專案都是前後端分離的,上線幾個月以來,發現乙個很奇怪的問題,每次前端發起請求,通過瀏覽器的開發者工具都能看到在network下同乙個url有兩條請求,第一條請求的method為options,第二條請求的method才是真正的get或者post,並且,第一條請求無資料返回,第二條請求才會返回正常的資料。

發現這個問題之後,立即組織搜尋問題產生的原因以及解決方案。在網上搜尋了大量資料,得到的乙個結論是:第乙個options的請求是由web伺服器處理跨域訪問引發的。網上資料顯示,options是一種「預檢請求」,瀏覽器在處理跨域訪問的請求時如果判斷請求為複雜請求,則會先向伺服器傳送一條預檢請求,根據伺服器返回的內容瀏覽器判斷伺服器是否允許該請求訪問。如果web伺服器採用cors的方式支援跨域訪問,在處理複雜請求時這個預檢請求是不可避免的。

查詢**發現,我們的web伺服器確實採用的是cors來解決跨域訪問的問題,並且我們在header中新增了自定義引數,導致我們的每次請求都為複雜請求,從而產生了每次請求都會傳送兩條請求的現象。

一次URL請求後台響應兩次

做專案時遇到乙個問題。現象是這樣的,我在頁面點按f5重新整理頁面,但是後台 卻響應了兩次,百思不得其解。然後我就試探性的去更改html的標籤裡面的東西,可是問題依舊。我一直在思索這個問題,到底是瀏覽器請求了一次後 的執行了兩次,還是產生了兩次請求?為了得到這個答案,我搜尋到httpwatch這個工具...

呼叫一次AJAX,傳送兩次請求

瀏覽器對複雜跨域請求的處理,在傳送真正的請求前,會先傳送乙個方法為options的預請求 preflight request 用於試探服務端是否能接受真正的請求,如果options獲得的回應是拒絕性質的,比如404 403 500等http狀態,就會停止post put等請求的發出。有三種方式會導致...

spring mvc前端一次請求,後端兩次訪問

前端 只有一次請求,但是f12看請求卻捕獲了兩次。如下 仔細觀察發現第二次請求的referer有問題,referer是指從哪個頁面鏈結過來的,就是這裡出現了第二次請求。網路上找了相關問題答案,嘗試,最終確認是頁面裡有的資源沒有訪問到導致的,src,href內容要重點檢查,檢查頁面渲染如下 原來是資料...