Nodejs允許跨域訪問


狀況:本地的前端項目(uni-app)以及后台管理(vue-mongo-node)和本地mongo數據庫

前台項目端口是8082,后台數據接口是8081.

跨域解決,直接上代碼:

uni-app的mainfest.json下: 紅色部分代理(node設置允許跨域之后,不加這部分的代理也可以跨域請求)  可加可不加

"app-plus": { /* 5+App特有相關 */
  "splashscreen": {
    "alwaysShowBeforeRender": true,
    "waiting": true,
    "autoclose": true,
    "delay": 0
    },
  "modules": { /* 模塊配置 */
    },
  "h5": {
  "devServer": {     "port": 8081,     "disableHostCheck": true,     "proxy": {       "/api": {         "target": "http://localhost:8081",         "changeOrigin": true, //開啟代理         "ws": false,         "pathRewrite": {         "^/api": ""         }       }     }   }  
 },

 

node接口部分:server.js(一定一定要放在最上面,實例化之后); 允許跨域一定要放在實例化之后!!!!

const express = require("express");
const app = express(); //設置跨域訪問 app.all("*",function(req,res,next){ //設置允許跨域的域名,*代表允許任意域名跨域 res.header("Access-Control-Allow-Origin","*"); //允許的header類型 res.header("Access-Control-Allow-Headers","content-type"); //跨域允許的請求方式 res.header("Access-Control-Allow-Methods","DELETE,PUT,POST,GET,OPTIONS"); if (req.method.toLowerCase() == 'options') res.send(200); //讓options嘗試請求快速結束 else next(); })

 請求例子:

uni.request({
  url:"http://localhost:8081/api/test",
  method:"GET",
  success(data) {
    console.log(data);//請求成功
  },
  fail(err){     console.log(err)   },   complete(res) {     console.log(res);//請求完成   }  })

 


免責聲明!

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



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