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

node.js中跨域請求實現(xiàn)方法詳解

 更新時間:2024年12月12日 10:12:18   作者:小灰灰學(xué)編程  
這篇文章主要介紹了node.js中跨域請求實現(xiàn)方法詳解,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下

默認情況下,出于安全考慮,瀏覽器會實施同源策略,阻止網(wǎng)頁向不同源的服務(wù)器發(fā)送請求或接收來自不同源的響應(yīng)。

同源策略:協(xié)議、域名、端口三者必須保持一致

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="https://cdn.staticfile.net/jquery/3.7.1/jquery.min.js"></script>
</head>
<body>
  <button id="btnGet">get請求</button>
  <button id="btnPost">post請求</button>
  <script>
    $('#btnGet').on('click', function(){
      console.log('點擊get請求')
      $.ajax({
        type: 'GET',
        url: 'http://127.0.0.1:3000/api/get',
        data: {
          name: 'lbj',
          number: 23
        },
        success: (res) =>{
          console.log(res, 'get請求成功')
        }
      })
    })
    $('#btnPost').on('click', function(){
      console.log('點擊post請求')
      $.ajax({
        type: 'POST',
        url: 'http://127.0.0.1:3000/api/post',
        data: {
          name: 'lbj',
          number: 23
        },
        success: (res) =>{
          console.log(res, 'get請求成功')
        }
      })
    })
  </script>
</body>
</html>

常見的解決跨域請求的方法

  • CORS(跨源資源共享)
  • JSONP
  • 代理服務(wù)器
  • Nginx反向代理

CORS的核心原理

是通過在HTTP響應(yīng)頭中添加特定的CORS相關(guān)字段,告訴瀏覽器哪些域名是被允許的,從而解決跨域請求的問題。這些字段包括:

Access-Control-Allow-Origin:指定允許訪問的域名??梢允菃蝹€域名,也可以是逗號分隔的多個域名,或者使用通配符*表示允許所有域名訪問。
Access-Control-Allow-Methods:指定允許的HTTP方法。例如,GET、POST等。
Access-Control-Allow-Headers:指定允許的HTTP頭部。例如,Content-Type等。
Access-Control-Allow-Credentials:表示是否允許發(fā)送包含憑據(jù)的請求,如Cookie。默認情況下,不發(fā)送憑據(jù)。
Access-Control-Expose-Headers:指定哪些HTTP頭部可以被瀏覽器訪問。

CORS實現(xiàn)方法

// 安裝中間件
// npm install cors
// 導(dǎo)入中間件
const cors = require('cors')
// 配置中間件,要在路由之前
app.use(cors())

CORS的優(yōu)缺點

優(yōu)點:
標準化:CORS是W3C標準,被廣泛支持。
靈活性:可以通過配置允許特定的源、方法和頭。
安全性:可以明確指定哪些資源可以被跨域訪問。
缺點:
配置復(fù)雜性:需要仔細配置CORS策略,以確保安全性和功能性。
瀏覽器兼容性:雖然現(xiàn)代瀏覽器都支持CORS,但某些舊版本瀏覽器可能不支持或支持不完全。

jsonp的實現(xiàn)方法

JSONP是一種通過script標簽的src屬性來實現(xiàn)跨域請求的技術(shù)。由于script標簽不受同源策略的限制,因此可以加載不同源的腳本。JSONP通常用于GET請求。

jsonp的優(yōu)缺點

優(yōu)點:
兼容性:JSONP在舊版本瀏覽器中也被廣泛支持。
簡單易用:實現(xiàn)起來相對簡單,不需要額外的中間件或配置。缺點:
安全性:JSONP存在安全風(fēng)險,因為它允許跨域執(zhí)行腳本。
局限性:只支持GET請求,不支持POST等其他HTTP方法。

jsonp的實現(xiàn)

<button id="btnJsonp">jsonp請求</button>
$('#btnJsonp').on('click', function(){
      console.log('點擊jsonp請求')
      $.ajax({
        method: 'GET',
        url: 'http://127.0.0.1:3000/api/jsonp',
        dataType: 'jsonp', 
        success: (res) =>{
          console.log(res, 'jsonp請求成功')
        }
      })
})

代理服務(wù)器

實現(xiàn)方式:代理服務(wù)器充當客戶端和目標服務(wù)器之間的中介。客戶端向代理服務(wù)器發(fā)起請求,代理服務(wù)器再將請求轉(zhuǎn)發(fā)給目標服務(wù)器,并將響應(yīng)返回給客戶端。通過這種方式,可以繞過瀏覽器的同源策略。

優(yōu)點:
靈活性:可以處理各種跨域請求,包括POST等HTTP方法。
安全性:可以通過代理服務(wù)器進行身份驗證和授權(quán)。
缺點:
實現(xiàn)復(fù)雜性:需要設(shè)置和維護代理服務(wù)器。
性能影響:代理服務(wù)器可能會增加請求延遲和帶寬消耗。

Nginx反向代理

實現(xiàn)方式:通過Nginx配置反向代理,將跨域請求轉(zhuǎn)發(fā)到Node.js應(yīng)用。

優(yōu)點:
性能:Nginx是一個高性能的HTTP服務(wù)器和反向代理服務(wù)器。
安全性:可以通過Nginx進行SSL/TLS加密和身份驗證。
缺點:
配置復(fù)雜性:需要熟悉Nginx的配置和管理。
依賴性:需要額外的Nginx服務(wù)器。

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

相關(guān)文章

  • nodejs圖片處理工具gm用法小結(jié)

    nodejs圖片處理工具gm用法小結(jié)

    這篇文章主要介紹了nodejs圖片處理工具gm用法小結(jié),詳細的介紹了gm的使用,還有圖片處理的實例,非常具有實用價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Node處理CPU密集型任務(wù)有哪些方法

    Node處理CPU密集型任務(wù)有哪些方法

    這篇文章主要介紹了Node處理CPU密集型任務(wù)有哪些方法,Node是一個非阻塞I/O和事件驅(qū)動的JavaScript運行環(huán)境,所以它非常適合用來構(gòu)建I/O密集型應(yīng)用,例如Web服務(wù)等
    2022-09-09
  • 使用Koa實現(xiàn)一個獲取視頻播放地址的接口

    使用Koa實現(xiàn)一個獲取視頻播放地址的接口

    在本節(jié)課中,我們將學(xué)習(xí)如何使用 Koa 實現(xiàn)一個獲取視頻播放地址的接口,我們將創(chuàng)建一個控制器,通過視頻 ID 獲取播放地址,并設(shè)置相應(yīng)的路由,最后,我們將使用 Postman 進行測試,感興趣的朋友可以參考下
    2024-05-05
  • Node.js實現(xiàn)在目錄中查找某個字符串及所在文件

    Node.js實現(xiàn)在目錄中查找某個字符串及所在文件

    這篇文章主要介紹了Node.js實現(xiàn)在目錄中查找某個字符串及所在文件,文中代碼簡潔,而且速度相當?shù)目?需要的朋友可以參考下
    2014-09-09
  • 使用NestJS開發(fā)Node.js應(yīng)用的方法

    使用NestJS開發(fā)Node.js應(yīng)用的方法

    這篇文章主要介紹了使用NestJS開發(fā)Node.js應(yīng)用的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • 為什么Node.js會這么火呢?Node.js流行的原因

    為什么Node.js會這么火呢?Node.js流行的原因

    是什么原因讓Node.js突然間如此流行呢?聽起來像是有了一種新的Web開發(fā)技術(shù),是這樣嗎?我們來匯總一下。
    2014-12-12
  • 詳解node字體壓縮插件font-spider的用法

    詳解node字體壓縮插件font-spider的用法

    在本篇文章中給大家詳細講述了node字體壓縮插件font-spider的用法的相關(guān)知識點內(nèi)容,有需要的朋友參考下。
    2018-09-09
  • nodejs開發(fā)——express路由與中間件

    nodejs開發(fā)——express路由與中間件

    本篇文章主要介紹了nodejs開發(fā)——express路由與中間件 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Nodejs極簡入門教程(一):模塊機制

    Nodejs極簡入門教程(一):模塊機制

    這篇文章主要介紹了Nodejs極簡入門教程(一):模塊機制,本文講解了模塊基礎(chǔ)知識、模塊的加載、包等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • nodejs與瀏覽器中全局對象區(qū)別點總結(jié)

    nodejs與瀏覽器中全局對象區(qū)別點總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于nodejs與瀏覽器中全局對象區(qū)別點總結(jié)內(nèi)容,對此有需要的朋友們可以學(xué)習(xí)下。
    2021-12-12

最新評論

沂水县| 沐川县| 习水县| 自贡市| 沈丘县| 承德县| 通化市| 巧家县| 汉中市| 许昌市| 淳安县| 襄城县| 清流县| 孟村| 无极县| 卓尼县| 宜君县| 牙克石市| 榕江县| 哈尔滨市| 纳雍县| 和林格尔县| 简阳市| 威远县| 兴隆县| 横峰县| 青神县| 靖江市| 左云县| 离岛区| 福海县| 巴彦淖尔市| 剑河县| 桐庐县| 元氏县| 惠州市| 界首市| 伊春市| 镇宁| 枞阳县| 修武县|