首页
/
每日頭條
/
生活
/
express跨域設置
express跨域設置
更新时间:2026-04-02 10:36:25

express跨域設置?最近在學習express,就用以前做的項目來進行express前後端分離的練手了,在做登陸注冊的時候發現跨域的時候,session的值是會失效的,導緻session裡面的數據獲取為undefined,網上找資料加上自己的不斷嘗試,終于找到了解決方法,簡單記錄一下解決方法,今天小編就來聊一聊關于express跨域設置?接下來我們就一起去研究一下吧!

express跨域設置(跨域post請求)1

express跨域設置

最近在學習express,就用以前做的項目來進行express前後端分離的練手了,在做登陸注冊的時候發現跨域的時候,session的值是會失效的,導緻session裡面的數據獲取為undefined,網上找資料加上自己的不斷嘗試,終于找到了解決方法,簡單記錄一下解決方法。

1、客戶端因為session原則上是需要cookie支持的,所以Ajax方法裡面必須添加 xhrFields:{withCredentials:true},表示允許帶Cookie的跨域Ajax請求( 特别說明,隻要使用的session都得加這句)

 $('#login').click(function () { $.ajax({ url: 'http://localhost:3000/users/yzm',//服務端路由地址 type: 'get', xhrFields:{withCredentials:true}, dataType: 'json', success:function(data){ $('#yzm_img').html(data) }, error:function(){ alert('error'); } }); }); $('#form_login').submit(function (e) {/!*登錄*!/ e.preventDefault();/!*阻止表單默認事件,頁面全局刷新*!/ var data=$('#form_login').serialize();/!*将表單裡的數據包裝起來*!/ $.ajax({ url : 'http://localhost:3000/users/login', type : "post", data : data, xhrFields:{withCredentials:true}, dataType:'json', success:function(msg) { alert("這是返回的數據"+msg); }, error:function(err){ alert("這是失敗的信息"+err); } }); });

通過設置 withCredentials: true ,發送Ajax時,Request header中便會帶上 Cookie 信息。

2、服務器端修改app.js文件

相應的,對于客戶端的參數,服務器端也需要進行設置。

對應客戶端的xhrFields.withCredentials: true 參數,服務器端通過在響應 header 中設置 Access-Control-Allow-Credentials = true 來運行客戶端攜帶證書式訪問。通過對 Credentials 參數的設置,就可以保持跨域 Ajax 時的 Cookie。

var express = require('express');var session = require('express-session');/*引入會話變量*/var app = express();app.all('*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "http://localhost:63342");//前端域名 res.header("Access-Control-Allow-Credentials",'true'); res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); next();});

特别注意:服務器端Access-Control-Allow-Credentials = true時,參數Access-Control-Allow-Origin 的值不能為 ‘*’ ,必須為自己客戶端項目所在地址。

3、服務器中使用session

router.get('/yzm', function(req, res, next) { req.session.yzm='abcd';}router.post('/login', function(req, res, next) { console.log(req.session.yzm);}

Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
溫濕度計怎麼看濕度
溫濕度計怎麼看濕度
讀溫度計的溫度:溫度計的溫度向上變大,每小格0.5C°。從刻度盤下方讀出相對濕度。相對濕度從左往右是變小的,每小格是2%。濕度計顯示的并非度數而是百分比,正常生活的室内濕度應保持在45%-70%左右。在計量法中規定,濕度定義為"物象狀态的量"。日常生活中所指的濕度為相對濕度,用RH%表示。總言之,即...
2026-04-02
兩條彩帶指的是什麼
兩條彩帶指的是什麼
兩條彩帶指的黃河和長江,出自歌曲《祖國媽媽真漂亮》。黃河是中國第二長河,中華文明最主要的發源地,中國人的“母親河”。其發源于青藏高原巴顔喀拉山脈,呈“幾”字形,流經青海、四川等9個省區,最後流入渤海,幹流全長約5464公裡,流域面積約75.2萬平方公裡。由于中段流經黃土高原地區,夾帶了大量泥沙,所以它也是世界上含沙量最多的河流。長江是亞洲第一長河和世
2026-04-02
三角梅扡插如何生根快
三角梅扡插如何生根快
1、準備材料。我們先準備好紙巾、枝條以及透明的可樂瓶子,并在瓶蓋處紮上幾個小孔,以方便透氣。2、處理和包裹枝條。将它的枝條稍做修剪之後,用紙巾将它的下部給包裹住,注意在包時,萬不可過緊,否則會讓根系不易長出。3、對枝條進行消毒。先用水打濕包着枝條的紙巾,之後用消毒水進行噴灑,充分的對枝條進行殺菌,防...
2026-04-02
背景牆裝修材料有哪些
背景牆裝修材料有哪些
1、乳膠漆和壁紙:用乳膠漆和壁紙來裝飾背景牆是非常不錯的一種選擇,搭配上精緻的電視櫃會顯得非常的簡潔、大氣,而且裝飾出來的效果也非常的讓人感到溫馨、舒适。2、文化磚:文化磚給人一種文雅之感,用文化磚做電視牆的話,會讓人覺得整個房間變得更加有文藝範,能透露出一種小清新的感覺,再搭配上筒燈照射,充滿着溫...
2026-04-02
在淘寶上如何使用運費險
在淘寶上如何使用運費險
第一、首先關于查詢運費險,運費險一般是賣家所贈送的,也可能是自己了點錢買的,點擊商品,如果有這個标志一般就是買了的。第二、然後點擊進入這個物流詳情,會看到"運費險已出單",說明你已經成功簽收商品了。第三、這時候就可以退貨了,記住一定不要确認收貨,不然就無法使用運費險。第四、賣家确認生活之後,淘寶官方...
2026-04-02
Copyright 2023-2026 - www.tftnews.com All Rights Reserved