首页
/
每日頭條
/
生活
/
express跨域設置
express跨域設置
更新时间:2026-03-18 10:17:00

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
推荐阅读
2023婦女節是法定假日嗎 2023婦女節放假半天是法定假嗎
2023婦女節是法定假日嗎 2023婦女節放假半天是法定假嗎
導讀:如今節假日越來越多,除了國慶、中秋等法定節日,不少朋友們也會認為3月8日的婦女節也是法定節日。到了這一天,女性朋友們可以好好打扮一番過上屬于女性朋友們的專屬節日。那麼,2023婦女節是法定假日嗎?2023婦女節放假半天是法定假嗎?小編在此為您一一解答。2023婦女節是法定假日嗎三八婦女節并不是...
2026-03-18
羊排能吃七八熟的嗎
羊排能吃七八熟的嗎
不建議吃七八分熟的羊排,其中可能含有細菌及寄生蟲,食用後會導緻腹痛腹瀉,嚴重時可能會危及生命安全,因此最好食用完全熟透的羊排。羊排中含有豐富的營養成分,是常見且美味的食物之一,具有溫和滋補的功效,能補充體力。羊排不建議吃七八分熟,因為羊排不像牛排一樣經過低溫殺菌或者熟成,其中可能含有細菌,人食用後極...
2026-03-18
爵士舞的好處
爵士舞的好處
練習爵士舞可以雕塑腰身、腿部、能夠達到減肥瘦身的效果,還可以幫助骨骼的生長,練習過程中可以培養練習者的耐心與信心,改善因長期伏案工作或是學習所導緻的腰肩勞損,提高自身的氣質。1、減肥瘦身爵士舞屬于有氧運動,在運動的過程中可以雕塑你的腰部、腿部,時髦緊腿術能夠簡單輕松的帶給你緊實的雙腿,手臂以及臀部都...
2026-03-18
2023内蒙古幾月份停暖氣 内蒙古停止供暖後還熱嗎
2023内蒙古幾月份停暖氣 内蒙古停止供暖後還熱嗎
随着3月的到來,各地的氣溫都開始回暖,所以對于北方供暖的城市幾月份停暖氣成了大家茶餘飯後讨論的焦點,下面小編就以内蒙古為例,一起看看内蒙古停止供暖後還熱嗎。2023内蒙古幾月份停暖氣一般情況下,都是3月15日24時按時停暖,但具體的還是以你所在地區的通知為準,畢竟就停暖規定我們可以知道如遇特殊情況,...
2026-03-18
網絡用詞淦什麼意思 網絡用詞淦解釋
網絡用詞淦什麼意思 網絡用詞淦解釋
1、淦,拼音為gàn,因為大家都知道有個髒話就是“幹”,為了相對文明一點,就用淦這個詞來代表幹,這樣就顯得有趣而且文明多了。2、開始是出現在B站的一些UP主制作的視頻中,比如說電影之類的,因為會打上字幕,為了好過審一點,就會用淦代替幹了,越來越多轉載自站長之家人的也開始這樣做。淦原本的意思是水滲入船...
2026-03-18
Copyright 2023-2026 - www.tftnews.com All Rights Reserved