国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

node+vue+express開發(fā)環(huán)境下接口數(shù)據(jù)傳遞中的跨域問題

這篇具有很好參考價(jià)值的文章主要介紹了node+vue+express開發(fā)環(huán)境下接口數(shù)據(jù)傳遞中的跨域問題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

跨域問題產(chǎn)生原因

原因

大部分瀏覽器自帶的保護(hù)措施,限制用戶在一個(gè)域名下請(qǐng)求另一個(gè)域名的數(shù)據(jù)

一、關(guān)于跨域

跨域?qū)τ谇昂蠖碎_發(fā)者來說,就像一塊狗皮膏藥,無論是面試還是開發(fā)中,都會(huì)經(jīng)常遇到。

之所以出現(xiàn)跨域問題,是因?yàn)闉g覽器的同源策略,為了隔離潛在的惡意文件,為了防御來自歪門邪道的攻擊,瀏覽器限制了從同一個(gè)源加載的文檔或腳本與來自另一個(gè)源的資源進(jìn)行交互。

前面我們提到了,前端跑在 8080 端口下,后端跑在 9002 端口下,這種情況就屬于不同的源(域名不同,協(xié)議不同,端口不同),所以 8080 端口下的前端請(qǐng)求直接訪問 9002 端口下的后端接口時(shí)就訪問失敗了。

vue前端解決辦法

Nodejs 代理

在 Nodejs 出現(xiàn)之前,JavaScript 編寫的程序通常需要在用戶的瀏覽器上執(zhí)行,Node.js 出現(xiàn)后,JavaScript 也能用于服務(wù)端編程了。Nodejs 一系列的內(nèi)置模塊使得程序可以脫離 IIS、Apache 這種 Web 服務(wù)作為獨(dú)立的服務(wù)器執(zhí)行。

我們使用 Nodejs 來解決跨域問題的思路就是,在本地創(chuàng)建一個(gè)虛擬服務(wù)器,對(duì) 8080 端口下的前端請(qǐng)求進(jìn)行代理,同時(shí)接收 9002 端口下的服務(wù)器端響應(yīng),這樣服務(wù)端和服務(wù)端進(jìn)行數(shù)據(jù)的交互就不會(huì)出現(xiàn)跨域問題了。

第一步,配置 Nodejs 代理服務(wù)

module.exports = {
  dev: {
    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {
      '/api': {
        target: 'http://localhost:9002', // 你請(qǐng)求的第三方接口
        changeOrigin: false, // 在本地會(huì)創(chuàng)建一個(gè)虛擬服務(wù)端,然后發(fā)送請(qǐng)求的數(shù)據(jù),并同時(shí)接收請(qǐng)求的數(shù)據(jù),這樣服務(wù)端和服務(wù)端進(jìn)行數(shù)據(jù)的交互就不會(huì)有跨域問題
        pathRewrite: { // 路徑重寫,
          '^/api': '' // 替換target中的請(qǐng)求地址,也就是說以后你在請(qǐng)求http://api.codingmore.top/v2/XXXXX這個(gè)地址的時(shí)候直接寫成/api即可。
        }
      },
    },
}

第二步,配置前端訪問請(qǐng)求路徑

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  VUE_APP_BASE_API: '"/api"'
  // VUE_APP_BASE_API: '"http://localhost:9002"'
})

第三步,重啟前端服務(wù)

node后端解決辦法

方法1:設(shè)置express

var express = require('express');
var app = express();
//跨域問題解決方面
app.all('*',function (req, res, next) {
 res.header('Access-Control-Allow-Origin', 'http://localhost:8080');//僅支持配置一個(gè)域名
 res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
 res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
 res.header('Access-Control-Allow-Credentials',true)//允許客戶端攜帶驗(yàn)證信息
 next(); 
});

方法2:使用cors

npm install cors
//跨域問題解決方面
const cors = require('cors'); 
app.use(cors({
  origin: ['http://localhost:8080','http://www.baidu.com'],//可設(shè)置多個(gè)跨域域名
  credentials: true//允許客戶端攜帶驗(yàn)證信息
}))

注意,這里得自己得域名必須帶上www,否則照樣不能實(shí)現(xiàn)跨域,因?yàn)闉g覽器去請(qǐng)求服務(wù)器時(shí),是完整的域名,所以后端驗(yàn)證也應(yīng)該是完整的域名。文章來源地址http://www.zghlxwxcb.cn/news/detail-825050.html

到了這里,關(guān)于node+vue+express開發(fā)環(huán)境下接口數(shù)據(jù)傳遞中的跨域問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【Node.js】一文帶你開發(fā)博客項(xiàng)目之接口(處理請(qǐng)求、搭建開發(fā)環(huán)境、開發(fā)路由)

    【Node.js】一文帶你開發(fā)博客項(xiàng)目之接口(處理請(qǐng)求、搭建開發(fā)環(huán)境、開發(fā)路由)

    個(gè)人簡(jiǎn)介 ?? 個(gè)人主頁: 前端雜貨鋪 ???♂? 學(xué)習(xí)方向: 主攻前端方向,也會(huì)涉及到服務(wù)端 ?? 個(gè)人狀態(tài): 在校大學(xué)生一枚,已拿 offer(秋招) ?? 推薦學(xué)習(xí):??前端面試寶典 ??Vue2 ??Vue3 ??Vue2Vue3項(xiàng)目實(shí)戰(zhàn) ??Node.js 內(nèi)容 參考鏈接 Node.js(一) 初識(shí) Node.js DNS 解析,建

    2023年04月21日
    瀏覽(27)
  • vue - vue中的process.env.NODE_ENV和環(huán)境變量

    vue - vue中的process.env.NODE_ENV和環(huán)境變量

    process.env 是 Node.js 中的一個(gè)環(huán)境對(duì)象。其中保存著系統(tǒng)的環(huán)境的變量信息??墒褂?Node.js 命令行工具直接進(jìn)行查看。如下: 而 NODE_ENV 就是其中的一個(gè)環(huán)境變量。這個(gè)變量主要用于標(biāo)識(shí)當(dāng)前的環(huán)境(生產(chǎn)環(huán)境,開發(fā)環(huán)境)。默認(rèn)是沒有這個(gè)環(huán)境變量的,需要自己手動(dòng)配置。 在

    2024年02月14日
    瀏覽(88)
  • Node + Express 后臺(tái)開發(fā) —— 起步

    前面陸續(xù)學(xué)習(xí)了一下 node、npm、模塊,也稍嘗試 Express,感覺得換一個(gè)思路加快進(jìn)行。 比如筆者對(duì)前端的開發(fā)已較熟悉,如果領(lǐng)導(dǎo)給一個(gè) 內(nèi)部小網(wǎng)站 的需求,難道說你得給我配置一個(gè) 后端 ? 又不是做一個(gè)復(fù)雜的后端,只是簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)(增刪改查)、上傳文件、下載cs

    2023年04月21日
    瀏覽(18)
  • Node + Express 后臺(tái)開發(fā) —— 登錄標(biāo)識(shí)

    Node + Express 后臺(tái)開發(fā) —— 登錄標(biāo)識(shí)

    系統(tǒng)通常只有登錄成功后才能訪問,而 http 是無狀態(tài)的。倘若直接請(qǐng)求 需要登錄 才可訪問的接口,假如后端反復(fù)查詢數(shù)據(jù)庫,而且每個(gè)請(qǐng)求還得帶上用戶名和密碼,這都是不很好。 作為前端,我們聽過 cookie (session) 和 token ,他們都是 登錄標(biāo)識(shí) ,各有特色,本篇都將完整實(shí)

    2024年02月02日
    瀏覽(18)
  • Node + Express 后臺(tái)開發(fā) —— 上傳、下載和發(fā)布

    Node + Express 后臺(tái)開發(fā) —— 上傳、下載和發(fā)布

    前面我們已經(jīng)完成了數(shù)據(jù)庫的 增刪改查 ,在弄一個(gè) 上傳 圖片、 下載 csv,一個(gè)最簡(jiǎn)單的后臺(tái)開發(fā)就已完成,最后 部署 即可。 需求 需求 :做一個(gè) 個(gè)人簡(jiǎn)介 的表單提交,有 昵稱 、 簡(jiǎn)介 和 頭像 。后端能接收數(shù)據(jù)并保存到數(shù)據(jù)庫。 接收不到數(shù)據(jù) 用 amis-editor (amis 低代碼編

    2024年02月03日
    瀏覽(26)
  • Node.js: express + MySQL + Vue實(shí)現(xiàn)圖片上傳

    Node.js: express + MySQL + Vue實(shí)現(xiàn)圖片上傳

    ? ? ? ? 前段時(shí)間用Node.js: express + MySQL + Vue + element組件做了一個(gè)小項(xiàng)目,記錄一下圖片上傳的實(shí)現(xiàn)。 ? ? ? ? 將圖片存入數(shù)據(jù)庫有兩種方法: ? ? ? ? ? ? ? ? 1,將圖片以二進(jìn)制流的方式存入數(shù)據(jù)庫(數(shù)據(jù)庫搬家容易,比較安全,但數(shù)據(jù)庫空間的消耗大,訪問會(huì)比較緩慢)

    2024年02月07日
    瀏覽(35)
  • Vue3前端開發(fā),父組件給子組件傳遞數(shù)據(jù)練習(xí)

    Vue3前端開發(fā),父組件給子組件傳遞數(shù)據(jù)練習(xí)

    Vue3前端開發(fā),父組件給子組件傳遞數(shù)據(jù)練習(xí)!還是借用剛剛的組件模板,來開展父?jìng)髯拥木毩?xí)。 依舊是需要借助官方提供的宏函數(shù)來接收數(shù)據(jù)。defineProps. 這個(gè)是父組件里面的內(nèi)容。我們自定義了2個(gè)變量,一個(gè)是車?yán)遄訂蝺r(jià)。一個(gè)是純文本。 一個(gè)數(shù)字類型,一個(gè)文本類型。都

    2024年01月22日
    瀏覽(28)
  • Web前端VScode/Vue3/git/nvm/node開發(fā)環(huán)境安裝

    Web前端VScode/Vue3/git/nvm/node開發(fā)環(huán)境安裝

    目錄 1 基本配置 2 安裝vscode 3 安裝vue 4 配置bash 5 安裝nvm 6 安裝node 7 安裝yarn 8 新建項(xiàng)目 9 運(yùn)行helloworld 本篇是為了做前端開發(fā)的環(huán)境而寫。使用的操作系統(tǒng)是windows 10 64位 現(xiàn)在做vue和node基本就是vscode和webstorm,本篇就是用vscode。 可以從主頁直接下載 選擇windows版本下載即可。

    2024年02月04日
    瀏覽(22)
  • vue前端開發(fā)自學(xué),子組件傳遞數(shù)據(jù)給父組件,使用$emit

    vue前端開發(fā)自學(xué),子組件傳遞數(shù)據(jù)給父組件,使用$emit

    vue前端開發(fā)自學(xué),子組件傳遞數(shù)據(jù)給父組件,使用$emit 父子組件之間互相傳遞數(shù)據(jù)的情況非常常見,下面為大家介紹的是,來自子組件,給父組件傳遞數(shù)據(jù)的情況。 如圖,以上代碼是父組件的代碼情況,ComponentEvent.vue。 可以看出來,里面的特殊點(diǎn),在于,有個(gè)子組件的引用和標(biāo)

    2024年01月23日
    瀏覽(30)
  • node.js下載安裝和報(bào)錯(cuò)大全(express、淘寶鏡像、webpack、Vue)

    node.js下載安裝和報(bào)錯(cuò)大全(express、淘寶鏡像、webpack、Vue)

    目錄 一、概述 二、操作步驟 (一)下載node.js (二) 安裝node.js (三)查看環(huán)境變量 (四)查看版本信息 (五)新建全局下載包和緩存包位置 (六)配置環(huán)境變量 (七)安裝express(內(nèi)嵌http模塊) 安裝成功 安裝失敗 解決辦法一(最好的辦法) ?解決辦法二(其次) (八

    2024年02月01日
    瀏覽(52)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包