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

express如何解決ajax跨域訪問session失效問題詳解

 更新時間:2019年06月20日 09:02:39   作者:喜洋洋咯  
這篇文章主要給大家介紹了關(guān)于express如何解決ajax跨域訪問session失效問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

前言

最近在學(xué)習(xí)express,就用以前做的項目來進行express前后端分離的練手了,在做登陸注冊的時候發(fā)現(xiàn)跨域的時候,session的值是會失效的,導(dǎo)致session里面的數(shù)據(jù)獲取為undefined,網(wǎng)上找資料加上自己的不斷嘗試,終于找到了解決方法,簡單記錄一下解決方法。

解決方法

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

 $('#login').click(function () {
  $.ajax({
   url: 'http://localhost:3000/users/yzm',//服務(wù)端路由地址
   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();/!*阻止表單默認(rèn)事件,頁面全局刷新*!/
  var data=$('#form_login').serialize();/!*將表單里的數(shù)據(jù)包裝起來*!/
  $.ajax({
   url : 'http://localhost:3000/users/login',
   type : "post",
   data : data,
   xhrFields:{withCredentials:true},
   dataType:'json',
   success:function(msg) {
    alert("這是返回的數(shù)據(jù)"+msg);
   },
   error:function(err){
    alert("這是失敗的信息"+err);
   }
  });
 });

通過設(shè)置 withCredentials: true ,發(fā)送Ajax時,Request header中便會帶上 Cookie 信息。

2、服務(wù)器端修改app.js文件

相應(yīng)的,對于客戶端的參數(shù),服務(wù)器端也需要進行設(shè)置。

對應(yīng)客戶端的 xhrFields.withCredentials: true 參數(shù),服務(wù)器端通過在響應(yīng) header 中設(shè)置 Access-Control-Allow-Credentials = true 來運行客戶端攜帶證書式訪問。通過對 Credentials 參數(shù)的設(shè)置,就可以保持跨域 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();
});

特別注意:服務(wù)器端 Access-Control-Allow-Credentials = true時,參數(shù)Access-Control-Allow-Origin 的值不能為 '*' ,必須為自己客戶端項目所在地址。

3、服務(wù)器中使用session

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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 如何在Express4.x中愉快地使用async的方法

    如何在Express4.x中愉快地使用async的方法

    這篇文章主要介紹了如何在Express4.x中愉快地使用async的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 教你如何使用node.js制作代理服務(wù)器

    教你如何使用node.js制作代理服務(wù)器

    本文介紹了如何使用node.js制作代理服務(wù)器,圖文并茂,十分的詳細(xì),代碼很簡潔易懂,這里推薦給大家。
    2014-11-11
  • npm出現(xiàn)Cannot?find?module?'XXX\node_modules\npm\bin\npm-cli.js'錯誤的解決方法

    npm出現(xiàn)Cannot?find?module?'XXX\node_modules\npm\bin\np

    最近在啟動項目的時候會報這個錯就是npm丟失,所以下面這篇文章主要給大家介紹了關(guān)于npm出現(xiàn)Cannot?find?module?'XXX\node_modules\npm\bin\npm-cli.js'錯誤的解決方法,需要的朋友可以參考下
    2022-08-08
  • nvm安裝方法以及安裝后node不能使用解決

    nvm安裝方法以及安裝后node不能使用解決

    在我們的日常開發(fā)中經(jīng)常會遇到這種情況,手上有好幾個項目,每個項目的需求不同,進而不同項目必須依賴不同版的NodeJS運行環(huán)境,nvm應(yīng)運而生,這篇文章主要給大家介紹了關(guān)于nvm安裝方法以及安裝后node不能使用解決的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Node.js實用代碼段之正確拼接Buffer

    Node.js實用代碼段之正確拼接Buffer

    這篇文章主要介紹了Node.js實用代碼段之正確拼接Buffer,通過實例代碼分享如何正確拼接Buffer,感興趣的小伙伴們可以參考一下
    2016-03-03
  • node版本管理器Volta的簡單使用

    node版本管理器Volta的簡單使用

    Volta是一款強大的JavaScript工具管理器,它簡化了命令行工具的安裝和管理,本文主要介紹了node版本管理器Volta的簡單使用,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • 淺談Node.js之異步流控制

    淺談Node.js之異步流控制

    本篇文章主要介紹了淺談Node.js之異步流控制,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • Node.js連接mongo數(shù)據(jù)庫上傳文件的方法步驟

    Node.js連接mongo數(shù)據(jù)庫上傳文件的方法步驟

    本文主要介紹了Node.js連接mongo數(shù)據(jù)庫上傳文件的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 刪除node_modules文件夾太慢的解決方案

    刪除node_modules文件夾太慢的解決方案

    這篇文章主要介紹了刪除node_modules文件夾太慢的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Node 代理訪問的實現(xiàn)

    Node 代理訪問的實現(xiàn)

    這篇文章主要介紹了Node 代理訪問的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評論