日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java - 探究前后分离带来的跨域问题

發布時間:2025/3/21 java 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java - 探究前后分离带来的跨域问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 為什么會產生跨域問題
  • 同源策略 (Same-origin policy)
  • 解決方案
    • 服務端解決方案
      • 簡單請求
      • 復雜請求
      • 測試
        • 簡單請求測試
        • 復雜請求測試
    • 代理服務器,反向代理接口請求
    • jsonp 方式


為什么會產生跨域問題

1995年,Netscape 公司出于安全的考慮在瀏覽器中引入了“同源策略”。

跨域問題只出現在瀏覽器訪問的頁面,因為這是瀏覽器為了保戶用戶安全而制造的策略。假如沒有這層保護,網站就很容易受到跨站偽造請求(CSRF)的攻擊。


同源策略 (Same-origin policy)

瀏覽器端對請求的處理中,如果兩個 URL 的協議、域名和端口都相同,我們就稱這兩個URL 同源

我們來舉幾個例子

同源

http://www.xxxx.com/indexhttp://www.xxxx.com/module/path1

非同源

http://www.xxxx.com/indexhttps://www.xxxx.com/module/path1 http://www.xxxx.com/indexhttp://www.yyyy.com/module/path1 http://www.xxxx.com/indexhttp://www.xxxx.com:8081/module/path1

兩個相同的源之間瀏覽器默認其是可以相互訪問資源和操作 DOM 的。兩個不同的源之間若想要相互訪問資源或者操作 DOM,那么會有一套基礎的安全策略的制約。

  • 安全性: 瀏覽器要防止當前站點的私密數據不會向其他站點發送

如當前站點的Cookie,LocalStorage,IndexDb 不會被發送到其他站點或被其他站點腳本讀取到。
無法跨域獲取Dom,無法發送Ajax請求。

  • 可用性:大型站點的圖片,音視頻等資源,希望部署在獨立服務器上,為緩解當前服務的壓力,開放某些特定的方式,訪問非同源站點

如:<script><img><iframe><link><vedio>等,可以同src屬性跨域訪問 允許跨域提交表單/或重定向請求


解決方案

服務端解決方案

跨域請求分兩種情況

簡單請求

  • 請求方法使用GET/HEAD/POST請求之一
  • 僅能使用CORS安全的頭部,Accept,Accept-Language, Content-Language,Content-Type
  • Content-Type的值只能是:text/plain,multipart/form-data,application/x-www-form-urlencoded三者其中之一
  • 請求從domain a 發過來, 請求到web domain b , 如果這個時候domain b 返回一個允許,可以解決這個問題。

    服務端解決方案: 在http響應頭中添加 Access-Control-Allow-Origin 頭,值為信任的站點


    復雜請求

    不符合簡單請求條件的即為復雜請求,訪問跨域資源前,需要發起preflight預檢請求(OPTIONS請求)詢問何種請求是被允許的,預檢請求失敗,則不會發起正式的業務請求,預檢請求成功,然后發起正式請求。



    測試

    隨便寫個spring boot 的工程,啟動2個端口 一個8080 一個8081 ,訪問8080的頁面,調用8081的后臺服務 , 用來測試

    簡單請求測試

    來看第一個

    CASE1: 【GET請求】

    點擊訪問

    服務端后臺的代碼

    添加

    response.addHeader("Access-Control-Allow_origin","http://localhost:8080");

    重啟后, 重新測試


    CASE2: 【表單請求】

    目前的后端代碼

    來 測試走一波


    重啟重新測試 , OK


    復雜請求測試

    【復雜請求】

    和上面Case2的請求一模一樣,除了 Content-Type , 那 還能用上面的添加響應頭解決嗎?
    答案是不能的。。。。。

    我們用wireshark來跟蹤下 option 預檢的 請求

    Spring Boot 官方給出了解決方案

    我們就看全局的這個配置吧

    請求下 跟蹤下

    good



    代理服務器,反向代理接口請求

    location /api {rewrite ^/api/(.*)$ /$1 break;proxy_pass http://localhost:8081/;}

    說一下為什要rewrite, 因為 api 這個前綴僅僅用于前臺頁面發請求時候攜帶, 后臺并沒有 api這個context, 所以需要在nnginx 通過rewrite機制來將api 替換掉 。

    rewrite ^/api/(.*)$ /$1 break;

    這個就是 一 /api開頭的請求, 替換為 $1 , 這個$1就是 請求中/api后面的內容, break 即為 匹配到則不往后面找了。


    jsonp 方式

    基于

    可用性:大型站點的圖片,音視頻等資源,希望部署在獨立服務器上,為緩解當前服務的壓力,開放某些特定的方式,訪問非同源站點 。

    如:<script><img><iframe><link><vedio>等,可以同src屬性跨域訪問 允許跨域提交表單/或重定向請求

    后臺代碼

    測試走一波

    了解下就行了,實際中很少會用到jsonp來解決跨域問題

    總結

    以上是生活随笔為你收集整理的Java - 探究前后分离带来的跨域问题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 成人激情视频在线 | 91偷拍富婆spa盗摄在线 | 黑人巨大精品人妻一区二区 | 婷婷伊人综合中文字幕 | 久久发布国产伦子伦精品 | 国产成人在线观看 | 九草影院 | 成人影视在线播放 | 中国老妇性视频 | 精品人伦一区二区三电影 | 福利小视频在线观看 | 99色综合 | 二区三区在线视频 | 夜夜躁狠狠躁日日躁 | 国产又粗又长又黄的视频 | 色婷婷国产精品久久包臀 | 成人区人妻精品一熟女 | 国产吃瓜在线 | 午夜激情网站 | 午夜一二区 | 国产毛片久久久 | 色一情一区二 | 午夜精品毛片 | 国产精品国产三级国产在线观看 | 大度亲吻原声视频在线观看 | 黄色av网站免费看 | 中文字幕乱码在线观看 | 熟妇人妻精品一区二区三区视频 | 在线97视频 | 99国产在线观看 | 久久精品偷拍视频 | 91一区二区三区四区 | 国语对白在线观看 | 四虎精品成人免费网站 | 综合激情四射 | 久久亚洲综合网 | 亚洲理论在线 | 日本激情一区二区三区 | 亚洲第一成年人网站 | 亚洲av综合色区无码一区爱av | 伊人精品一区二区三区 | 九九精品在线视频 | 91高清在线免费观看 | 在线观看一二三区 | 在线观看入口 | 青青视频一区二区 | 清纯唯美亚洲 | 91免费国产在线观看 | 人妻在线一区二区三区 | 欧美做爰猛烈床戏大尺度 | 啪啪在线观看 | 亚洲欧美综合视频 | 欧洲美女与动交ccoo | 日韩欧美日本 | 理伦毛片 | 欧美第一页在线观看 | 国产精品久久久久久久久久久久 | 欧美性爱精品一区 | 成人欧美一区二区三区黑人 | 成人国产亚洲 | 欧美成年网站 | 男生桶女生肌肌 | 欧美30p| 色老二导航 | 中文字幕在线播放一区二区 | 欧美成人精品一区二区三区 | 无码人妻精品一区二区中文 | 国产1级片 | 欧美浓毛大泬视频 | 97精品熟女少妇一区二区三区 | 韩国成人免费视频 | 国产精品国产三级国产 | 欧美丰满熟妇bbbbbb百度 | 男人的天堂av网 | 久一久久 | 日韩色一区 | 性高跟鞋xxxxhd人妖 | 久久精品在线 | 爱爱一级| 日韩在线电影一区 | 天天摸天天做 | 黄色专区| 精品视频久久 | 国产香蕉网 | 亚洲国产一区二区在线 | 亚洲国产精品成人综合久久久 | 国产一区在线不卡 | 亚洲欧美综合精品久久成人 | 蜜桃视频在线观看污 | 91av久久 | 经典三级av在线 | 一级片在线视频 | 在线国产91 | 国产区一区二区三 | 啪啪短视频 | 精品视频免费看 | 国产一级在线免费观看 | 韩国成人免费视频 | 91刺激视频|