nodejs中利用cors解決跨域方法


在進行編程獲取別的網站數據或者在同一局域網下向其他IP地址提交和獲取數據時,都會發生跨域錯誤,在進行express框架進行服務器端編程,我常用以下方法解決跨域問題:

首先下載模塊

# Express 是一個簡潔而靈活的 node.js Web應用框架, 提供了一系列強大特性幫助你創建各種 Web 應用,和豐富的 HTTP 工具。使用 Express 可以快速地搭建一個完整功能的網站

npm i express 或者 npm install express # 首先安裝服務器模塊
 
npm i cors 或者 npm install cors # 再安裝解決跨域模塊

npm i axios  # 用來發送請求

然后引入模塊

# 引入安裝的兩個模塊
const express = require('express');
const cors = require('cors');
const app = express(); # 初始化模塊創建個對象

最后使用模塊

app.use(express.json());       # 解析json編碼數據
app.use(express.urlencoded()); # 解析url編碼的數據
app.use(cors());  #  不加上這句代碼跨域訪問時會出現錯誤,加上就不會出現跨域錯誤情況

# 進行各種方式的請求, 第一個參數都是路由,提供給前端的接口做代理用,以post方式舉例,提供一個代理服務器
# 用nodejs請求數據然后把數據返回給前端就行
app.post("/api", (req, res) => {
    const { url } = req.body;
    // console.log(req.body);
    axios.get(url)
        .then(result => {
            res.json(result.data);
        })
        .catch(err => {
            console.error(err);
        })
})

# 第一個參數是端口號
app.listen(3000, ()=>{
    console.log("運行在3000端口")
});

# 前端通過訪問后端提供的接口
$.post("后端接口", 
# 把需要請求數據的網址傳給nodejs后端
{ url: "要請求數據的網址" }) 
  .then(res => {
      console.log(res)  # 最后后端把請求的數據返回給前端,這樣就解決了跨域,但是是由后端解決的
  })
  .catch(err => {
      console.error(err);
  })

解決跨域問題一般都是服務器端常做的,這種解決跨域方式自認為感覺比較簡單,就是安裝cors模塊然后使用下即可,不需要做其他配置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM