server后端代理解决ajax跨域

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h2>端口号5000</h2>
    <button class="but">同源请求</button>
    <button class="but">server跨域请求</button>
<script>
    let but = document.querySelectorAll(".but");
    // 同源
    but[0].onclick = function(){
        
        let xhr = new XMLHttpRequest();
        xhr.open("post","/Serverpost",true) //路径这里相对路径
        xhr.onload = function(){
           console.log(xhr.responseText) 
        }
        xhr.send()
    }
    // 跨域非同源 5000的服务去server copy文件的4000服务中请求
    but[1].onclick = function(){
        let xhr = new XMLHttpRequest();
        xhr.open("post","/api/Serverpost",true) //路径这里相对路径
        xhr.onload = function(){
           console.log(xhr.responseText) 
        }
        xhr.send()
    }
</script>

5000服务
const Koa = require("koa");
const Router = require("koa-router");
const static = require("koa-static");
const koaServerHttpProxy = require("koa-server-http-proxy")

let app = new Koa();
let router = new Router();
app.use(static(__dirname+"/static"));


// 服务器端代理(接口转发) 正向代理 原理:通过中间商代理去拿数据
// 客服端代理,反向代理      和后端协商/ 和下面 和前段要对应
app.use(koaServerHttpProxy("/api",{
    target:"http://localhost:4000", 
    pathRewrite:{'^/api':''}, //^/api 以api开头的替换后面的 这里是空
    changeOrigin: true
}));
router.get("/",ctx=>{
    ctx.body = "5000端口"
})
router.post("/Serverpost",ctx=>{
    ctx.body = "同源5000端口"
})

app.use(router.routes());
app.listen(5000); 


4000服务
const Koa = require("koa");
const Router = require("koa-router");
const static = require("koa-static");
const koaServerHttpProxy = require("koa-server-http-proxy")

let app = new Koa();
let router = new Router();
app.use(static(__dirname+"/static"));

router.post("/Serverpost",ctx=>{
    ctx.body = "我是被5000服务请求到的数据"
})

app.use(router.routes());
app.listen(4000); 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason–json

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值