亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

從Vue到Postman全面驗證API接口跨域問題解決

 更新時間:2024年08月09日 11:12:03   作者:niaonao  
我們都知道跨域是同源策略導(dǎo)致的,域名不同、協(xié)議不同、端口號不同任意一種情況都會導(dǎo)致跨域,這篇文章主要介紹了從Vue到Postman全面驗證API接口跨域問題,需要的朋友可以參考下

1、前言

    最近剛接手了一個新項目,業(yè)務(wù)還沒了解全,讓開發(fā)功能。做了倆接口,postman自測完能拿到數(shù)據(jù)就給前端聯(lián)調(diào)了。
    過了十分鐘,前端告訴我要解決下跨域問題。我心想,這個服務(wù)都運行這么久了,生產(chǎn)環(huán)境還有三方產(chǎn)品在調(diào)用它,怎么突然存在跨域問題??戳讼马椖看_實沒有做跨域配置。
    但是三方產(chǎn)品都在用很久了。帶著疑問,還是找方法去測了下接口是否支持跨域。然后再去配置跨域攔截,解決跨域問題。

2、跨域問題

    我們都知道跨域是同源策略導(dǎo)致的。域名不同、協(xié)議不同、端口號不同任意一種情況都會導(dǎo)致跨域。

域名不同:當(dāng)前頁面的域名為 www.example.com,而請求的資源的域名為 api.example.com。
協(xié)議不同:當(dāng)前頁面的協(xié)議為 https,而請求的資源的協(xié)議為 http。
端口號不同:當(dāng)前頁面的端口號為 8080,而請求的資源的端口號為 9090。

    此處測試用端口號不同的場景來測試。
    我的后端服務(wù)端口為9090
    發(fā)出請求的前端資源端口暫定為5173
    前端請求后端,此時滿足端口號不同,根據(jù)同源策略會出現(xiàn)跨域。

3、后端服務(wù)接口

接口名稱:/ai/assistant/getEngineModel
請求類型:GET
服務(wù)地址:localhost:9090

@RestController
@RequestMapping("/ai/assistant")
public class AssistantController {
    @GetMapping("/getEngineModel")
    public Result<List<EngineModelVO>> getEngineModel(){
        return ResultUtils.success(engineModelList);
    }
}

4、接口跨域測試

4.1 Vue調(diào)用測試

    Vue項目端口為5173,運行后訪問localhost:5173服務(wù)。
    此處Vue項目中引入了axios組件,直接使用axios調(diào)用接口進行測試。

<template>
    <AButton @click="clickWechat"/>
</template>
<script>
import axios from 'axios'
const clickWechat =() => {
    axios({
      method: 'get',
      url: 'http://localhost:9090/ai/assistant/getEngineModel',
      withCredentials: true,
      data: {},
    }).then(({ data }) => {
      console.log(data)
    })
}
</script>

跨域失敗截圖

跨域成功截圖

4.2 Postman測試

    在Postman下新建Collections,然后在項目下新建請求Add request。
    在Headers下新增Origin,維護值為localhost:5173。表示我要從localhost:5173請求localhost:9090的服務(wù)。
    點擊Send,雖然服務(wù)響應(yīng)Status為200,Response Body 也正常返回接口數(shù)據(jù)。
    但是Response Headers中不包含Access-Control-Allow-Origin localhost: 5173,說明當(dāng)前請求存在跨域問題。

跨域失敗截圖
缺少Access-Control-Allow-Origin localhost: 5173

跨域成功截圖
包含以下響應(yīng)內(nèi)容
Access-Control-Allow-Origin localhost: 5173
Vary: Origin
Access-Control-Allow-Credentials: true

5、服務(wù)接口增加注解@CrossOrigin解決跨域

    確認項目跨域問題存在,對新增服務(wù)接口增加注解 @CrossOrigin 即可。
    擴展說明:跨域問題解決方式很多,不限于當(dāng)前@CrossOrigin注解、WebMvcConfigurer接口和自定義Filter。

@RestController
@RequestMapping("/ai/assistant")
public class AssistantController {
    @GetMapping("/getEngineModel")
    @CrossOrigin(origins = "*")
    public Result<List<EngineModelVO>> getEngineModel(){
        return ResultUtils.success(engineModelList);
    }
}

到此這篇關(guān)于從Vue到Postman全面驗證API接口跨域問題的文章就介紹到這了,更多相關(guān)Vue到Postman全面驗證API接口跨域內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue發(fā)送Formdata數(shù)據(jù)及NodeJS接收方式

    Vue發(fā)送Formdata數(shù)據(jù)及NodeJS接收方式

    這篇文章主要介紹了Vue發(fā)送Formdata數(shù)據(jù)及NodeJS接收方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue實現(xiàn)數(shù)字時鐘效果

    Vue實現(xiàn)數(shù)字時鐘效果

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)數(shù)字時鐘效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • vue?代碼壓縮優(yōu)化方式

    vue?代碼壓縮優(yōu)化方式

    這篇文章主要介紹了vue?代碼壓縮優(yōu)化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • nuxt踩坑之Vuex狀態(tài)樹的模塊方式使用詳解

    nuxt踩坑之Vuex狀態(tài)樹的模塊方式使用詳解

    這篇文章主要介紹了nuxt踩坑之Vuex狀態(tài)樹的模塊方式使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • vue中關(guān)于trigger的用法

    vue中關(guān)于trigger的用法

    這篇文章主要介紹了vue中關(guān)于trigger的用法說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 詳解Vuex下Store的模塊化拆分實踐

    詳解Vuex下Store的模塊化拆分實踐

    這篇文章主要介紹了詳解Vuex下Store的模塊化拆分實踐,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • vue樣式疊層z-index不起作用的解決方案

    vue樣式疊層z-index不起作用的解決方案

    這篇文章主要介紹了vue樣式疊層z-index不起作用的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue基礎(chǔ)ESLint?Prettier配置教程詳解

    vue基礎(chǔ)ESLint?Prettier配置教程詳解

    這篇文章主要介紹了vue基礎(chǔ)ESLint?Prettier配置教程詳解,本文使用VsCode?+?Vue?+?ESLint?+?Prettier?實現(xiàn)代碼格式規(guī)范?+?保存自動修復(fù)代碼js+vue
    2022-07-07
  • vue3中封裝axios請求最新實現(xiàn)步驟

    vue3中封裝axios請求最新實現(xiàn)步驟

    這篇文章主要給大家介紹了關(guān)于vue3中封裝axios請求的最新實現(xiàn)步驟,在Vue 3中可以通過封裝axios來實現(xiàn)接口的統(tǒng)一管理和調(diào)用,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-04-04
  • 使用Vue3封裝一個通用echarts組件詳解

    使用Vue3封裝一個通用echarts組件詳解

    這篇文章主要為大家詳細介紹了使用Vue3封裝一個通用echarts組件詳解的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-02-02

最新評論