node.js express cors解決跨域

目錄

什么是跨域

示例

postman請求

前端請求

cors中間件解決跨域

流程

配置cors參數


什么是跨域

跨域(Cross-Origin)是指在 Web 開發中,當一個網頁的源(Origin)與另一個網頁的源不同時,就發生了跨域。同源策略(Same-Origin Policy)是瀏覽器的一項安全策略,限制了一個源下的文檔或腳本如何能與另一個源下的資源進行交互。

同源是指兩個 URL 具有相同的協議(http/https)、主機(domain)和端口(port)。如果這兩個URL的這三個部分中任何一個不同,就被認為是不同源即跨域。

示例

開啟一個node服務,服務地址為http://127.0.0.1:3000

postman請求

postman對服務發起post登錄請求

請求成功。postman不受跨域影響,原因主要是因為postman是一個獨立的桌面應用程序,而不是運行在瀏覽器中的 Web 應用。

前端請求

開啟一個前端項目服務,比如vue

發起登錄請求

<script setup>import axios from 'axios'const authLogin = async () => {try {const { data } = await axios.post('http://127.0.0.1:3000/api/v1/users/login', {"email": "adasdasasda1@qq.com","password": "pass1234"})} catch (error) {throw new Error(error)}}
</script><template><main><button @click="authLogin">sign</button></main>
</template>

瀏覽器跨域報錯

cors中間件解決跨域

流程

1、安裝cors依賴

npm i cors

2、引入依賴

const cors = require('cors');

3、注冊中間件

全局注冊cors中間件

app.use(cors());

?或為某個路由注冊cors中間件

router.post('/path', cors(), controller);

vue服務進行post請求

請求成功,看到響應頭Access-Control-Allow-Origin為*, 為cors的默認設置

配置cors參數

const corsOptions = {origin: 'http://192.168.110.61:5173',//...
};app.use(cors(corsOptions));

origin:?允許訪問資源的特定源

通過查閱github文檔查看其他配置

GitHub - expressjs/cors: Node.js CORS middleware

用cors中間件配置同以下

app.all("*", (req, res, next) => {//設置允許跨域的域名,*代表允許任意域名跨域res.header("Access-Control-Allow-Origin", "http://192.168.110.61:5173");
})

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/213939.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/213939.shtml
英文地址,請注明出處:http://en.pswp.cn/news/213939.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

day6 arm

main.c #include "uartt.h"//封裝延時函數void delay(int ms){int i,j;for(i0;i<ms;i){for(j0;j<2000;j);}}int main(){//串口初始化uart4_init();//燈初始化led_init();//char a;char *s;while(1){myputchar(\n);myputchar(\r);//從串口讀取一個字符// amyget…

手把手教你反編譯小程序

本次實驗環境 操作系統: win10 10.0.19042 node: v14.17.0 微信開發者工具: Stable 1.05.2110290 前期準備 在電腦端安裝模擬器工具&#xff0c;這里以夜神模擬器為例&#xff0c; 在模擬器中安裝微信&#xff1a;用于微信打開小程序時加載小程序包。在模擬器中文件管理器&…

論文筆記:A review on multi-label learning

一、介紹 傳統的監督學習是單標簽學習&#xff0c;但是現實中一個實例可能對應多個標簽。這篇文章介紹了多標簽分類的定義和評價指標、多標簽學習的算法還有其他相關的任務。 二、問題相關定義 2.1 多標簽學習任務 假設 X R d X R^d XRd&#xff0c;表示d維的輸入空間&am…

面試經典150題(10-13)

leetcode 150道題 計劃花兩個月時候刷完&#xff0c;今天&#xff08;第四天&#xff09;完成了4道(10-13)150&#xff1a; 10. &#xff08;45. 跳躍游戲 II&#xff09;題目描述&#xff1a; 給定一個長度為 n 的 0 索引整數數組 nums。初始位置為 nums[0]。 每個元素 nums[…

日本服務器:確保其穩定性的幾個要點

?  在租用日本服務器時&#xff0c;用戶們大多一定會關注它的穩定性&#xff0c;其實這些顧及都是正常的。畢竟&#xff0c;網站要想正常運行&#xff0c;保障服務器穩定是關鍵。本文將討論有關如何保障日本服務器穩定性的一些有用技巧&#xff0c;希望對您有所幫助。 1.注重…

Linux定時循環備份指定文件或文件夾,每月永久備份留1份

備份需求&#xff1a;每天完成一次指定文件的備份&#xff0c;壓縮后存放到指定目錄 問題&#xff1a;備份時間長了以后占用空間較大&#xff0c;浪費存儲&#xff0c;實際歷史備份意義不大&#xff0c;并不需要永久保存。但是如果直接刪除可能導致無法恢復歷史狀態的數據。 …

SpringBoot 啟動加載器解析

計時器介紹 啟動加載器實戰 實現方式1 實現CommandLineRunner接口重寫run方法通過Order進行排序 示例: Component Order(1) public class FirstCommandlineRunner implements CommandLineRunner {Overridepublic void run(String... args) throws Exception {System.out.pr…

一篇上手機器學習

一、上手機器學習的幾個階段 上手機器學習&#xff0c;第一步當然是看完我的這篇文章啦~&#xff0c;然后就按以下步驟來就可以了&#xff1a; 學習Python編程語言&#xff1a;Python是一種易于學習的高級編程語言&#xff0c;廣泛應用于機器學習領域。你可以通過學習Python的…

第三節、項目支付功能實戰-微信支付平臺接入流程,小程序賬號注冊、商戶注冊

簡介 本篇介紹小程序的注冊流程、商戶平臺的注冊流程、以及小程序和商戶平臺如何進行綁定。 微信小程序注冊 由于項目中使用了小程序進行支付&#xff0c;所以首先來注冊小程序。小程序注冊網站如下&#xff1a;小程序注冊地址 小程序賬號注冊 1、鏈接頁面點擊“前往注冊”…

carla安裝中的問題

1、carla carla安裝完后&#xff0c;需要使用python調用API去更換地圖&#xff0c;增加車輛等 使用Python調用API過程中可能會報錯&#xff1a; 報錯1&#xff1a;carla API&#xff08;Carla包&#xff09;版本不對 **解決方法&#xff1a;**需要將這個目錄下的三個文件拷…

數學建模算法

算法部分 1. 評價類模型2. TOPSIS3. 線性規劃4. 聚類分析5. 預測模型6. 拉伊達準則(對異常值進行剔除)7. 數據擬合8. 圖論代碼練習1. 模擬圓周率2. 斐波那契數列3. 四只鴨子落在一個圓中概率4. 方程2: y" uy y,初值y(0) 1,y(0) 0 算法講解 matlab代碼大全 1. 評價類模型…

【Python】修改pip 默認安裝位置

使用pip安裝的時候&#xff0c;一般是默認安裝在c盤里的。這樣做很容易會讓c盤的文件堆滿。那么如何讓pip安裝的包放入d盤呢&#xff1f; 查看pip默認安裝的位置 在cmd里輸入python -m site&#xff0c;這里可以看到&#xff0c;安裝包會默認下載到c盤中 從這里可以看到&am…

【Spring教程15】Spring框架實戰:詳解解讀AOP的工作流程和AOP的核心概念

目錄 1 AOP工作流程2 AOP核心概念 歡迎大家回到《 Java教程之Spring30天快速入門》&#xff0c;本教程所有示例均基于Maven實現&#xff0c;如果您對Maven還很陌生&#xff0c;請移步本人的博文《 如何在windows11下安裝Maven并配置以及 IDEA配置Maven環境》&#xff0c;本文…

如何使用cpolar+Inis在Ubuntu系統快速搭建本地博客網站公網可訪問

文章目錄 前言1. Inis博客網站搭建1.1. Inis博客網站下載和安裝1.2 Inis博客網站測試1.3 cpolar的安裝和注冊 2. 本地網頁發布2.1 Cpolar臨時數據隧道2.2 Cpolar穩定隧道&#xff08;云端設置&#xff09;2.3.Cpolar穩定隧道&#xff08;本地設置&#xff09; 3. 公網訪問測試總…

AspNetCore 中使用 Knife4jUI 更加友好的Swagger界面

&#x1f680;介紹 aspnetcore.knife4j是一個基于.NET Core平臺的Swagger UI庫&#xff0c;它提供了API文檔的生成和管理功能。這個庫的前身是swagger-bootstrap-ui&#xff0c;在Java項目中廣泛使用&#xff0c;由于其優秀的界面和易用性被許多開發者所推崇。現在&#xff0c…

LV.13 D2 開發板啟動流程 學習筆記

一、開發板啟動過程 EMMC&#xff1a;相當于電腦的外存&#xff0c;斷電不丟失 開發板上電后首先運行SOC內部iROM中固化的代碼(BL0)&#xff0c;這段代碼先對基本的軟硬件環境(時鐘等...)進行初始化&#xff0c;然后再檢測撥碼開關位置獲取啟動方式&#xff0c;然后再將對應存儲…

基于SSM+MySQL學生宿舍管理系統的設計與實現(源碼+數據庫+文檔)

摘 要 近年來&#xff0c;隨著計算機技術的不斷發展和運用&#xff0c;許多實際問題都得到了較好地解決。隨著現代社會對企業經營的需求日益增長&#xff0c;企業的無紙辦公也逐漸得到了推廣。本學生宿舍管理系統的設計開發&#xff0c;目標就是解決宿舍管理復雜的人為管理&a…

PHP變量用{}的使用方法

{} 可以將變量名稱作為一個整體使用 "666666".$id."888888"; //可以簡化為如下 "666666{$id}888888"; //當然$id也可以用$ids[$id] 參考&#xff1a; PHP 大括號{} 的使用_php 函數放在{}-CSDN博客

[23] Self-conditioned Image Generation via Generating Representations

[paper | code] 用生成對象本身作為控制信號&#xff0c;實現無條件圖像生成。訓練階段。Step1&#xff1a;用預訓練模型&#xff08;例如&#xff1a;Moco v3&#xff09;提取生成對象的特征編碼&#xff1b;Step2&#xff1a;基于特征編碼&#xff0c;訓練一個擴散模型RDM&a…

pycharm手動安裝包

1.下載對應的包 TTS PyPI 2.手動解壓&#xff0c;找到文件放到pycharm對應項目的lib文件夾中 以TTS包為例&#xff0c;找到下載并解壓的包中的2個文件&#xff0c;一個名稱一個info結尾 3.放到項目的lib文件夾中 eg&#xff1a;路徑&#xff1b;C:\doc\myProject\speaker\venv…