最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot解決使用localhost或127.0.01模擬CORS失效

 更新時間:2024年07月30日 09:49:29   作者:成為大佬先禿頭  
CORS允許不同源的網(wǎng)頁請求訪問另一個源服務器上的某些資源,本文主要介紹了springboot解決使用localhost或127.0.01模擬CORS失效,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧

前言

CORS (Cross-Origin Resource Sharing) 指的是一種機制,它允許不同源的網(wǎng)頁請求訪問另一個源服務器上的某些資源。通常情況下,如果 JavaScript 代碼在一個源中發(fā)起了 AJAX 請求,那么該請求只能訪問同源的資源,而不能訪問其他源的資源。這是由于瀏覽器的同源策略所限制的。

CORSCross-Origin Resource Sharing)規(guī)范將跨域請求分為簡單請求和復雜請求兩種類型。

  • 簡單請求(Simple Request):
  • 請求方法限制為 GET、POST、HEAD。
  • 允許的請求頭字段為:Accept、Accept-Language、Content-Language、Content-Type(僅限于以下幾個值:application/x-www-form-urlencoded、multipart/form-data、text/plain)。
  • 不允許使用自定義的請求頭字段。

簡單請求滿足上述要求時,瀏覽器會自動發(fā)送跨域請求,并且不會在正式請求之前發(fā)送預檢請求(OPTIONS 請求)。服務器只需在響應中添加 Access-Control-Allow-Origin 頭字段,指定允許訪問的來源,即可完成跨域訪問。

  • 復雜請求(Preflighted Request):
  • 使用非簡單請求方法(如PUT、DELETE等)。
  • 使用自定義的請求頭字段。
  • Content-Type 的值為 application/json 之類的復雜 MIME 類型。

復雜請求不滿足簡單請求的要求時,瀏覽器會先發(fā)送預檢請求(OPTIONS 請求),以征詢服務器是否允許實際請求。服務器需要在預檢請求和實際請求的響應中添加一系列的頭字段,包括 Access-Control-Allow-Origin、Access-Control-Allow-Methods、Access-Control-Allow-Headers 等,來指定允許訪問的來源、允許使用的方法、允許使用的請求頭字段等信息。

問題發(fā)現(xiàn)

在學習spring內(nèi)容時,有介紹CORS,按照示例代碼編寫后,運行發(fā)現(xiàn)能請求成功,操作如下:

示例代碼:

@Controller
public class MyController {
    @GetMapping("/index")
    @CrossOrigin(origins = "http://127.0.0.1")
    public ResponseEntity<String> index(){
        return ResponseEntity.ok().body("index");
    }
}

請求:

在這里插入圖片描述

使用127.0.0.1,發(fā)現(xiàn)能正常返回接口,按照網(wǎng)上說法,localhost127.0.0.1不屬于同源。

同源是指在以下三個方面完全相同的情況下,兩個網(wǎng)頁才被認為是同源的:
協(xié)議(Protocol):兩個網(wǎng)頁的協(xié)議必須相同,如都是使用 HTTP 或 HTTPS。
域名(Domain):兩個網(wǎng)頁的域名必須相同,包括子域名。例如,www.example.com 和 api.example.com 是不同的域名。
端口號(Port):如果指定了端口號,則兩個網(wǎng)頁的端口號必須相同。如果沒有指定端口號,默認使用 80(HTTP)或 443(HTTPS)。
只有當上述三個條件都滿足時,兩個網(wǎng)頁才被認為是同源的,瀏覽器會將它們視為同一個應用程序,允許它們之間進行相互通信和資源共享。

跨域是指在不滿足同源策略的情況下,從一個域名的網(wǎng)頁向另一個域名的網(wǎng)頁發(fā)起請求。由于瀏覽器的安全策略限制,跨域請求通常是被禁止的,除非目標服務器明確允許跨域請求。在跨域請求中,瀏覽器會發(fā)送預檢請求(OPTIONS 請求),以確定是否允許跨域訪問。

問題解決

在使用 Ajax 發(fā)起跨域請求時,瀏覽器會在請求頭中添加 Origin 字段。這個字段表示該請求的來源(即當前頁面的域名)。服務器可以通過檢查這個字段來判斷是否允許該請求進行跨域訪問。

例如,如果你的網(wǎng)頁位于 http://example.com,而 Ajax 請求的目標是 http://api.example.com/data,則請求頭中會包含 Origin: http://example.com

所以問題的根本是,要在headers請求頭中添加Origin 字段(localhost127.0.0.1同源,改為不同,不用過多糾結(jié),底層可能做了請求地址和請求頭的判斷,生產(chǎn)環(huán)境也不用這玩意當域名的):

在這里插入圖片描述

問題解決。

到此這篇關于springboot解決使用localhost或127.0.01模擬CORS失效的文章就介紹到這了,更多相關springboot CORS失效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java的Hello World詳解

    Java的Hello World詳解

    當我們學習一門編程語言的時候,我們都會先學如何輸出Hello World!本文通過幾個例子給大家介紹輸出Hello World的代碼,感興趣的朋友一起看看吧
    2021-09-09
  • Kafka的生產(chǎn)者和消費者機制使用方式

    Kafka的生產(chǎn)者和消費者機制使用方式

    本文介紹了Kafka的HighLevelAPI和LowLevelAPI,并詳細講解了Kafka生產(chǎn)者和消費者的基本流程、工作機制、分區(qū)路由機制、消息緩存機制、發(fā)送應答機制、消息冪等性以及消息事務機制
    2025-11-11
  • Spring Mvc下實現(xiàn)以文件流方式下載文件的方法示例

    Spring Mvc下實現(xiàn)以文件流方式下載文件的方法示例

    這篇文章主要介紹了Spring Mvc下實現(xiàn)以文件流方式下載文件的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 詳解Java中方法重寫和方法重載的6個區(qū)別

    詳解Java中方法重寫和方法重載的6個區(qū)別

    方法重寫和方法重載都是面向?qū)ο缶幊讨校敲捶椒ㄖ貙懞头椒ㄖ剌d有哪些區(qū)別,本文就詳細的來介紹一下,感興趣的可以了解一下
    2022-01-01
  • 每日六道java新手入門面試題,通往自由的道路--JVM

    每日六道java新手入門面試題,通往自由的道路--JVM

    這篇文章主要為大家分享了最有價值的6道JVM面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關的題目、經(jīng)典面試編程題等,對hashCode方法的設計、垃圾收集的堆和代進行剖析,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Spring?Assert?使用全面指南

    Spring?Assert?使用全面指南

    本文旨在說明org.springframework.util包下的Assert類的作用、它與org.junit包下的Assert有何不同,以及它如何幫助我們簡化日常開發(fā),使代碼更加優(yōu)雅,感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • Java創(chuàng)建線程的五種寫法總結(jié)

    Java創(chuàng)建線程的五種寫法總結(jié)

    本文主要為大家詳細介紹一下Java實現(xiàn)線程創(chuàng)建的五種寫法,文中的示例代碼講解詳細,對我們學習有一定的幫助,感興趣的可以跟隨小編學習一下
    2022-08-08
  • Java屬性嵌套獲取值的實現(xiàn)方式

    Java屬性嵌套獲取值的實現(xiàn)方式

    本文介紹了如何使用MybatisMetaObject類和FieldUtil工具類來簡化Java類嵌套獲取屬性值的過程,通過這種方式,可以避免逐層檢查和判空操作,直接從實例對象中獲取深層嵌套的屬性值,并且在任意一層為空時自動返回null,不會報錯
    2025-11-11
  • springboot中非容器類如何獲取配置文件數(shù)據(jù)

    springboot中非容器類如何獲取配置文件數(shù)據(jù)

    這篇文章主要介紹了springboot中非容器類如何獲取配置文件數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • java中Map如何根據(jù)key的大小進行排序詳解

    java中Map如何根據(jù)key的大小進行排序詳解

    這篇文章主要給大家介紹了關于java中Map如何根據(jù)key的大小進行排序的相關資料,有時候我們業(yè)務上需要對map里面的值按照key的大小來進行排序的時候我們就可以利用如下方法來進行排序了,需要的朋友可以參考下
    2023-09-09

最新評論

霍邱县| 廊坊市| 江安县| 麻城市| 乐至县| 高碑店市| 临沧市| 疏附县| 桂东县| 大竹县| 连南| 昆明市| 洞口县| 行唐县| 宁津县| 望城县| 赤城县| 手机| 江口县| 巴东县| 钟山县| 木里| 英德市| 育儿| 滨州市| 祥云县| 嵩明县| 三亚市| 揭阳市| 虞城县| 肇州县| 化德县| 奇台县| 岫岩| 东城区| 普安县| 平湖市| 长沙县| 湟中县| 科技| 灵丘县|