express解决跨域问题

公子初心
2022-09-21 / 0 评论 / 59 阅读 / 正在检测是否收录...

1.原始方式

app.use((req, res, next) => {
    res.header('Access-Control-Allow-Origin', '*')
    res.header('Access-Control-Allow-Headers', 'Authorization,X-API-KEY, Origin, X-Requested-With, Content-Type, Accept, Access-Control-Request-Method' )
    res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PATCH, PUT, DELETE')
    res.header('Allow', 'GET, POST, PATCH, OPTIONS, PUT, DELETE')
    next();
    });

2.express使用cors来解决跨域问题

2.1 js主程序

// 1.使用npm安装cors npm -i cors
// 2.引入cors模块
// 3.在路由之前配置cors中间件解决跨域问题
const express = require('express')
const router = require('./route')
const qs = require("querystring")
const app = express()

const cors = require("cors")

app.use(express.urlencoded({extended:false}))
app.use(express.json())
app.use(cors())
app.use(router)

app.listen(80,()=>{
    console.log("http://127.0.0.1")
})

2.2 路由模块


const express = require("express")

const router = express.Router()

router.get('/',(req,res)=>{
   console.log(req.query);
   res.send(req.query) 
})

router.post('/',(req,res)=>{
   console.log(req.body);
   res.send(req.body) 
})
module.exports = router

2.3 前端使用axios发起get,post请求

<!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="axios.js"></script>
</head>
<body>
    <button id="btnGet">get请求</button>
    <button id="btnPost">post请求</button>
    <script>
        let btnGet = document.querySelector("#btnGet")
        let btnPost = document.querySelector("#btnPost")

        btnGet.addEventListener("click",()=>{
            axios.get("http://127.0.0.1",{
                params:{
                    id:123,
                    name:'hello'
                }
            }).then(res=>{
                console.log(res.data);
            });
        })

        btnPost.addEventListener("click",()=>{[
            axios.post('http://127.0.0.1', {id:1,name:"laobai"})
                .then(function(ret){
                console.log(ret.data)
            })
        ]})
    </script>
</body>
</html>
0

评论 (0)

取消