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

NodeJS實(shí)現(xiàn)跨域的方法(使用示例)

 更新時(shí)間:2024年05月25日 14:40:02   作者:還是大劍師蘭特  
CORS是一種 W3C 標(biāo)準(zhǔn),它使用額外的 HTTP 頭來告訴瀏覽器讓運(yùn)行在一個(gè) origin (domain) 上的Web應(yīng)用被準(zhǔn)許訪問來自不同源服務(wù)器上的指定的資源,這篇文章主要介紹了NodeJS實(shí)現(xiàn)跨域的方法,需要的朋友可以參考下

方法一,直接在入口文件如 server.js中填寫

//引用express 
    const express = require('express') 
    //設(shè)置實(shí)例,調(diào)用express方法 
    const app = express()    
    //設(shè)置跨域 
    app.all("*",(req,res,next)=>{ 
        res.header("Access-Control-Allow-Origin","*") 
        res.header("Access-Control-Allow-Headers","Content-Type") 
        res.header("Access-Control-Allow-Methods","*") 
        res.header('Content-Type','application/json;charset=utf-8') 
        next() 
    }) 

方法二,使用中間件cors

CORS 是一種 W3C 標(biāo)準(zhǔn),它使用額外的 HTTP 頭來告訴瀏覽器讓運(yùn)行在一個(gè) origin (domain) 上的Web應(yīng)用被準(zhǔn)許訪問來自不同源服務(wù)器上的指定的資源。在 Node.js 中,可以使用 cors 這個(gè) npm 包來簡化 CORS 的配置。

安裝cors

npm install cors

使用示例

var express = require('express') 
var cors = require('cors') 
var app = express() 
app.use(cors())  
app.get('/products/:id', function (req, res, next) { 
  res.json({msg: '這對(duì)所有來源都啟用了 CORS!'}) 
})   
app.listen(80, function () { 
  console.log('CORS-enabled web server listening on port 80') 
}) 

單個(gè)路由配置 CORS

var express = require('express') 
var cors = require('cors') 
var app = express() 
var corsOptions = { 
  origin: 'http://example.com', 
  optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204 
} 
app.get('/products/:id', cors(corsOptions), function (req, res, next) { 
  res.json({msg: 'This is CORS-enabled for only example.com.'}) 
}) 
app.listen(80, function () { 
  console.log('CORS-enabled web server listening on port 80') 
}) 

動(dòng)態(tài)來源配置 CORS

var express = require('express') 
var cors = require('cors') 
var app = express() 
var whitelist = ['http://example1.com', 'http://example2.com'] 
var corsOptions = { 
  origin: function (origin, callback) { 
    if (whitelist.indexOf(origin) !== -1) { 
      callback(null, true) 
    } else { 
      callback(new Error('Not allowed by CORS')) 
    } 
  } 
} 
app.get('/products/:id', cors(corsOptions), function (req, res, next) { 
  res.json({msg: 'This is CORS-enabled for a whitelisted domain.'}) 
}) 
app.listen(80, function () { 
  console.log('CORS-enabled web server listening on port 80') 
}) 

三、使用 JSONP (僅限 GET 請求)

JSONP 是一種非官方的跨域數(shù)據(jù)交互協(xié)議,利用 <script> 標(biāo)簽沒有跨域限制的特點(diǎn)來實(shí)現(xiàn)跨域通信。但請注意,JSONP 只能用于 GET 請求,并且存在安全風(fēng)險(xiǎn)。

示例:

app.get('/jsonp', (req, res) => {
  const callback = req.query.callback;
  const data = { message: 'Hello, this is JSONP response' };
  res.type('text/javascript');
  res.send(`${callback}(${JSON.stringify(data)})`);
});

四、代理服務(wù)器

在開發(fā)環(huán)境中,有時(shí)候會(huì)使用代理服務(wù)器來轉(zhuǎn)發(fā)請求,避免直接對(duì) API 服務(wù)器進(jìn)行跨域請求??梢允褂?http-proxy-middleware 或 Express 的 proxy 中間件。

綜上,CORS 是最常用的跨域解決方案,因?yàn)樗葮?biāo)準(zhǔn)又靈活,支持各種HTTP方法和自定義頭部。其他方法如 JSONP 和代理服務(wù)器則根據(jù)具體場景選擇使用。

到此這篇關(guān)于NodeJS實(shí)現(xiàn)跨域的方法的文章就介紹到這了,更多相關(guān)NodeJS跨域內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Node.js 中判斷一個(gè)文件是否存在

    Node.js 中判斷一個(gè)文件是否存在

    這篇文章主要記錄一些 Node.js 應(yīng)用中的小知識(shí)點(diǎn),如果你 Google/Baidu “Node.js 如何判斷文件是否存在” 發(fā)現(xiàn)給出的很多答案還是使用的 fs.exists,這里不推薦使用 fs.exists 你可以選擇 fs.stat 或 fs.access。
    2020-08-08
  • 寶塔部署nodejs項(xiàng)目的實(shí)戰(zhàn)步驟

    寶塔部署nodejs項(xiàng)目的實(shí)戰(zhàn)步驟

    前段時(shí)間部署node項(xiàng)目的時(shí)候出現(xiàn)了一點(diǎn)問題,所以想著給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于寶塔部署nodejs項(xiàng)目的實(shí)戰(zhàn)步驟,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Nodejs?Socket連接池及TCP?HTTP網(wǎng)絡(luò)模型詳解

    Nodejs?Socket連接池及TCP?HTTP網(wǎng)絡(luò)模型詳解

    這篇文章主要為大家介紹了Nodejs?Socket連接池及TCP?HTTP網(wǎng)絡(luò)模型,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Linux環(huán)境部署node服務(wù)并啟動(dòng)詳細(xì)步驟

    Linux環(huán)境部署node服務(wù)并啟動(dòng)詳細(xì)步驟

    最近用node.js開發(fā)了一個(gè)web項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于Linux環(huán)境部署node服務(wù)并啟動(dòng)的詳細(xì)步驟,文中通過圖文以及示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • nodeJS中關(guān)于path.resolve()的用法解析

    nodeJS中關(guān)于path.resolve()的用法解析

    這篇文章主要介紹了nodeJS中關(guān)于path.resolve()的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 詳解Windows下安裝Nodejs步驟

    詳解Windows下安裝Nodejs步驟

    本篇文章主要介紹了詳解Windows下安裝Nodejs步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • nvm版本導(dǎo)致npm?install報(bào)錯(cuò)Unexpected?token?'.'的解決辦法

    nvm版本導(dǎo)致npm?install報(bào)錯(cuò)Unexpected?token?'.'的解決辦法

    最近做項(xiàng)目遇到npm install 的問題,下面這篇文章主要給大家介紹了關(guān)于nvm版本導(dǎo)致npm?install報(bào)錯(cuò)Unexpected?token?'.'的解決辦法,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • puppeteer實(shí)現(xiàn)html截圖的示例代碼

    puppeteer實(shí)現(xiàn)html截圖的示例代碼

    通過Puppeteer的提供的api直接控制Chrome模擬大部分用戶操作來進(jìn)行UI Test或者作為爬蟲訪問頁面來收集數(shù)據(jù),這篇文章主要介紹了puppeteer實(shí)現(xiàn)截圖的示例代碼,感興趣的可以了解一下
    2019-01-01
  • 輕松開發(fā) Streamable HTTP MCP Server

    輕松開發(fā) Streamable HTTP MCP Server

    本文介紹了MCP協(xié)議中stdio和SSE協(xié)議的優(yōu)缺點(diǎn),以及MCP的最新協(xié)議StreamableHTTP的特性,韓老師還分享了如何使用YeomanGeneratorforMCPServer快速開發(fā)一個(gè)支持StreamableHTTP的MCPServer,并在VSCode中進(jìn)行調(diào)試
    2025-05-05
  • 10個(gè)Node.js庫幫助你優(yōu)化代碼和簡化開發(fā)

    10個(gè)Node.js庫幫助你優(yōu)化代碼和簡化開發(fā)

    這篇文章主要介紹了10個(gè)Node.js庫幫助你優(yōu)化代碼和簡化開發(fā),其中包括處理數(shù)組、對(duì)象、字符串庫Lodash,緩存數(shù)據(jù)處理庫Node-cache,解析、操作和格式化日期和時(shí)間庫Moment.js,Redis操作庫,發(fā)送電子郵件庫Nodemailer
    2023-05-05

最新評(píng)論

鄂托克前旗| 阿图什市| 重庆市| 治多县| 湖北省| 滦平县| 来宾市| 武冈市| 若羌县| 望都县| 兴安盟| 藁城市| 乐都县| 江北区| 临漳县| 静乐县| 伊金霍洛旗| 阆中市| 衡东县| 嵊泗县| 阳新县| 焦作市| 安乡县| 吴忠市| 海林市| 凤山市| 商丘市| 松江区| 郸城县| 黄陵县| 凤凰县| 宣恩县| 青神县| 新沂市| 永平县| 上林县| 绵阳市| 望江县| 济源市| 金堂县| 民权县|