最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nodejs如何解決跨域(CORS)

 更新時間:2023年01月17日 15:51:44   作者:我的demo不爛尾  
這篇文章主要介紹了Nodejs如何解決跨域(CORS)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Nodejs解決跨域(CORS)

前后端分離的大環(huán)境下,受制于同源策略,我們需要懂得實(shí)現(xiàn)CORS(Cross-Origin Resource Sharing)

手動配置

在nodejs中,req 和 res 參數(shù)在中間件間都指向同一對象,這樣我們就可以在頭中間件中修改res 的header。如下:

const express = require('express')
?
const app = express();
?
app.use((req, res) => {
? ? //在這里手動配置
? ? res.header('Access-Control-Allow-Origin', 'example.com');
})

CORS模塊

我們也可以通過引入cors模塊快速配置。

npm i cors --save ? //不是node的內(nèi)置模塊,需要先下載

const express = require('express')
const cors = require('cors')
?
const app = express();
?
const corsConfig = {
? origin:'http://localhost:8080',
? credentials:true,
}
//使用默認(rèn)
app.use(cors())
//或修改默認(rèn)配置
app.use(cors(corsConfig))?

axios

值得注意的一點(diǎn)是cors模塊會將 Access-Control-Allow-Origin 默認(rèn)配為 *,但是axios不接受通配符*。而且axios還需要 Access-Control-Allow-Credentials 屬性為true。

Credentials我們可以手動配置,Access-Control-Allow-Origin 我們可以如下配置 :

const express = require('express')
const cors = require('cors')
?
const app = express();
?
//使用默認(rèn)
app.use(cors())
? ?.use((req, res, next) => {
? ? ? ? console.log(req);
? ? ? ? res.setHeader('Access-Control-Allow-Origin',req.origin),
? ? ? ? next()
? ? })
//req.origin是網(wǎng)關(guān)地址 如:http://192.168.1.1?

注意:本地調(diào)試的時候axios不認(rèn)為 localhost:8080 等于127.0.0.1:8080

Nodejs CORS跨域問題

在響應(yīng)頭里設(shè)置:'Access-Control-Allow-Origin': '*'

index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>cors</title>
</head>

<body>
    <script>
    	// 請求地址
        fetch('http://localhost:3000/api/data')
        	// 請求體解析
            .then(res => res.json())
            // 獲得數(shù)據(jù)
            .then(result => console.log(result))
    </script>
</body>

</html>

server.js

const http = require('http');
const libUrl = require('url')

http.createServer((req, res) => {
    const url = libUrl.parse(req.url, true);

    if (url.pathname === '/favicon.ico') return;

    if (url.pathname === '/api/data') {
        res.writeHead(200, {
            'Content-Type': 'Application/json',
            // 設(shè)置允許所有端口訪問
            'Access-Control-Allow-Origin': '*'
        });
        let obj = {
            name: '張三',
            age: 20,
            sex: '男'
        };
        res.write(JSON.stringify(obj));
    }
    res.end();
}).listen(3000)

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • nodejs語言實(shí)現(xiàn)驗(yàn)證碼生成功能的示例代碼

    nodejs語言實(shí)現(xiàn)驗(yàn)證碼生成功能的示例代碼

    這篇文章主要介紹了nodejs語言實(shí)現(xiàn)驗(yàn)證碼生成功能的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 在Node.js中實(shí)現(xiàn)視頻收藏功能

    在Node.js中實(shí)現(xiàn)視頻收藏功能

    在構(gòu)建視頻分享平臺時,視頻的收藏功能是用戶互動的重要組成部分,本文將介紹如何在Node.js應(yīng)用中實(shí)現(xiàn)視頻收藏功能,包括數(shù)據(jù)模型的創(chuàng)建、業(yè)務(wù)邏輯的實(shí)現(xiàn)以及接口的驗(yàn)證測試,需要的朋友可以參考下
    2024-04-04
  • npm?install編譯時報(bào)"Cannot?read?properties?of?null?(reading?‘pickAlgorithm‘)"錯誤的解決辦法

    npm?install編譯時報(bào)"Cannot?read?properties?of?null?(r

    這篇文章主要給大家介紹了關(guān)于npm?install編譯時報(bào)“Cannot?read?properties?of?null?(reading?‘pickAlgorithm‘)“錯誤的解決辦法,文中將解決方法介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • nodejs進(jìn)階(6)—連接MySQL數(shù)據(jù)庫示例

    nodejs進(jìn)階(6)—連接MySQL數(shù)據(jù)庫示例

    本篇文章主要介紹了nodejs進(jìn)階(6)—連接MySQL數(shù)據(jù)庫示例,詳細(xì)的介紹了NodeJS操作MySQL數(shù)據(jù)庫,作為應(yīng)用最為廣泛的開源數(shù)據(jù)庫則成為我們的首選,有興趣的可以了解一下。
    2017-01-01
  • node?path的使用詳解

    node?path的使用詳解

    這篇文章主要介紹了node?path的使用詳解,使用path.join()方法,可以把多個路徑片段拼接為完整的路徑字符串,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • node獲取命令行中的參數(shù)詳解

    node獲取命令行中的參數(shù)詳解

    這篇文章主要為大家介紹了node獲取命令行中的參數(shù)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Node.js處理HTTP請求的示例代碼

    Node.js處理HTTP請求的示例代碼

    Node.js是一個基于Chrome V8引擎的JavaScript運(yùn)行環(huán)境,它使得JavaScript可以脫離瀏覽器在服務(wù)器端運(yùn)行,Node.js的非阻塞I/O模型和事件驅(qū)動特性使其在處理HTTP請求時表現(xiàn)出色,本文將探討Node.js如何處理HTTP請求,并提供示例代碼,需要的朋友可以參考下
    2024-09-09
  • node.js中的fs.statSync方法使用說明

    node.js中的fs.statSync方法使用說明

    這篇文章主要介紹了node.js中的fs.statSync方法使用說明,本文介紹了fs.statSync的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • node koa2實(shí)現(xiàn)上傳圖片并且同步上傳到七牛云存儲

    node koa2實(shí)現(xiàn)上傳圖片并且同步上傳到七牛云存儲

    這篇文章主要介紹了node koa2實(shí)現(xiàn)上傳圖片并且同步上傳到七牛云存儲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • node.js插件nodeclipse安裝圖文教程

    node.js插件nodeclipse安裝圖文教程

    這篇文章主要為大家分享了node.js插件nodeclipse安裝圖文教程,如何安裝node.js支持插件,下面小編為大家分享具體步驟
    2016-05-05

最新評論

若尔盖县| 武强县| 资溪县| 依安县| 柘城县| 郑州市| 河东区| 宝应县| 青阳县| 三原县| 临汾市| 页游| 牙克石市| 鄂伦春自治旗| 永城市| 甘德县| 潜山县| 开原市| 保亭| 平原县| 博白县| 西畴县| 三门峡市| 平阴县| 彩票| 长宁县| 讷河市| 剑川县| 永胜县| 宜黄县| 仲巴县| 滨海县| 奉节县| 柏乡县| 虞城县| 津南区| 闽侯县| 旬邑县| 武乡县| 临沭县| 永德县|