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

Nodejs如何解決跨域(CORS)

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

Nodejs解決跨域(CORS)

前后端分離的大環(huán)境下,受制于同源策略,我們需要懂得實現(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的內置模塊,需要先下載

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

axios

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

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

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

注意:本地調試的時候axios不認為 localhost:8080 等于127.0.0.1:8080

Nodejs CORS跨域問題

在響應頭里設置:'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',
            // 設置允許所有端口訪問
            'Access-Control-Allow-Origin': '*'
        });
        let obj = {
            name: '張三',
            age: 20,
            sex: '男'
        };
        res.write(JSON.stringify(obj));
    }
    res.end();
}).listen(3000)

總結

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

相關文章

  • node.js命令行教程圖文詳解

    node.js命令行教程圖文詳解

    本文先介紹原生的node.js實現(xiàn)命令行交互,了解原生的api,然后通過commander.js和inquirer.js實現(xiàn)一個完整的交互命令行工具。感興趣的朋友跟隨小編一起看看吧
    2019-05-05
  • 使用Nodejs編寫一個腳本實現(xiàn)markdown轉pdf功能

    使用Nodejs編寫一個腳本實現(xiàn)markdown轉pdf功能

    Markdown?是一種輕量級的標記語言,非常適合用來寫作和記錄,將?Markdown?轉換為?PDF?可以讓文檔在格式和樣式上更加統(tǒng)一,也方便在不同設備和平臺上查看和打印,在接下來的內容中我們將講解如何使用?NodeJs?編寫一個?Markdown?轉?PDF?的腳本來實現(xiàn)我們這個想要的功能
    2024-05-05
  • node.js與vue?cli腳手架的下載安裝配置方法記錄

    node.js與vue?cli腳手架的下載安裝配置方法記錄

    這篇文章主要給大家介紹了關于node.js與vue?cli腳手架的下載安裝配置方法,文中通過實例代碼以及圖文介紹的非常詳細,對大家學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-01-01
  • socket.io學習教程之基本應用(二)

    socket.io學習教程之基本應用(二)

    socket.io提供了基于事件的實時雙向通訊,下面這篇文章主要給大家介紹了socket.io基本應用的相關資料,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-04-04
  • 淺談Express異步進化史

    淺談Express異步進化史

    本篇文章主要介紹了淺談Express異步進化史 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 優(yōu)化Node.js Web應用運行速度的10個技巧

    優(yōu)化Node.js Web應用運行速度的10個技巧

    這篇文章主要介紹了優(yōu)化Node.js Web應用運行速度的10個技巧,本文講解了從并行、異步、緩存、gzip 壓縮、客戶端渲染等等技巧,需要的朋友可以參考下
    2014-09-09
  • Node.js靜態(tài)服務器的實現(xiàn)方法

    Node.js靜態(tài)服務器的實現(xiàn)方法

    這篇文章主要介紹了Node.js靜態(tài)服務器的實現(xiàn)方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-02-02
  • node.js中的fs.readSync方法使用說明

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

    這篇文章主要介紹了node.js中的fs.readSync方法使用說明,本文介紹了fs.readSync方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Koa2中間件的作用及路由實現(xiàn)實例詳解

    Koa2中間件的作用及路由實現(xiàn)實例詳解

    這篇文章主要介紹了Koa2中間件的作用及路由實現(xiàn)實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • Node.js學習之TCP/IP數(shù)據(jù)通訊(實例講解)

    Node.js學習之TCP/IP數(shù)據(jù)通訊(實例講解)

    下面小編就為大家?guī)硪黄狽ode.js學習之TCP/IP數(shù)據(jù)通訊(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10

最新評論