18禁黄动漫网站禁片无遮挡观看|国产在线观看免费A∨|国产偷伦在线2020

  • 
    
    1. <table id="dwhxz"><cite id="dwhxz"></cite></table>
    2. https與http混用導致post請求變成OPTIONS請求的案例

      2022-08-12 11:46 欄目:技術開發 查看(4855)

      某站點反饋極少數情況下某正常接口返回的結果為空,而正常情況下這個接口返回的結果不可能為空。

      x1 問題分析

      通過打開日志記錄分析日志,發現服務端請求日志中出現了異常的OPTIONS請求,而正常情況下應該是post請求。如下圖所示:

      微信截圖_20220812110039

      從上述日志記錄可知,在請求的header中還包含了origin字段,正常非跨域的請求是不會出現這個字段的。但是這個網站并沒有做前后端分離,理論上在站內訪問不會存在跨域請求。再次根據上述日志細看,發現referer等信息都是http請求的頁面,也就是這個請求是在http頁面發起了。

      然而這個網站默認訪問方式是https,只是沒做強制必須用https訪問,也就是http也可以訪問。估計是極個別網站手動輸入頁面地址使用的是http路徑訪問。請求例子如下:

      ajax('post','http://test.csweigou.com/api/test/index',{data},0,function (d) {
         console.log(d);
      });
      

      在http頁面發送上述請求后,發現控制臺網絡監聽界面出現了3次記錄,如圖所示:

      微信截圖_20220812112635

      上述三個記錄分別是:①、307重定向;②、跨站請求被禁止;③、觸發預檢。而在后臺服務端日志中看到的OPTIONS請求其實就是第三條記錄產生的。如圖所示:

      微信截圖_20220812112922

      x2 問題解決

      在后臺服務端獲取前臺發送的請求數據的時候,我們一般是不會使用OPTIONS來接受數據,于是就導致了最開始提到的接口數據為空的異常結果。要避免解決這樣的問題可以強制使用https,全站強制啟用https訪問,即便用戶手工輸入http鏈接也會重定向到https,這樣就不會產生跨站請求。

      x3 相關知識鏈接

      關于出現OPTIONS請求,這種請求方式并不是我們預期常見的訪問請求,根據查閱相關資料可知有如下幾個跟OPTIONS有關系的要點(下面3個要點是網絡上其他網友總結的,僅供參考):

      1、Http Options Method:OPTIONS請求方法的主要用途有兩個:①、獲取服務器支持的HTTP請求方法;②、用來檢查服務器的性能。

      2、CORS:即跨域資源共享,是一種網絡瀏覽器的技術規范,它為Web服務器定義了一種方式,允許網頁從不同的域訪問其資源。而這種訪問是被同源策略所禁止的。CORS系統定義了一種瀏覽器和服務器交互的方式來確定是否允許跨域請求。

      3、Preflighted Requests:即預檢請求,是CORS中一種透明服務器驗證機制。預檢請求首先需要向另外一個域名的資源發送一個 HTTP OPTIONS 請求頭,其目的就是為了判斷實際發送的請求是否是安全的。下面的2種情況需要進行預檢: ①、簡單請求,比如使用Content-Type 為 application/xml 或 text/xml 的 POST 請求; ②、置自定義頭,比如 XJSON等。

      與我們的項目經理聯系
      掃二維碼與項目經理溝通

      我們在微信上24小時期待你的聲音

      解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯網交流

      轉載請注明出處:https與http混用導致post請求變成OPTIONS請求的案例 - 微構網絡
      分享:
    3. 
      
      1. <table id="dwhxz"><cite id="dwhxz"></cite></table>