前后端交互 - CORS跨域 / Nodejs中间件代理跨域

CORS跨域 / Nodejs中间件代理跨域

跨域:指的是浏览器行为,正常情况下是成功的,只是同源策略不允许拿数据,所以会报错。
jsonp 方式跨域,主要的负担都由前端来承担,但是无法携带参数。
cors 方式跨域,主要的负担由后端来承担,看起来较为优雅。

CORS跨域

CORS是一个W3C标准,全称是"跨域资源共享"( Cross-origin resource sharing )。
它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了 AJAX 只能同源使用的限制。
实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨域通信。

跨域实现

准备两个后端服务器,均启动服务

  • 前端ajax 申请
    修改路由,指定访问资源地址
let xhr = new XMLHttpRequest();
xhr.open("post","http://localhost:4000/post",true); // 直接修改路由即可
xhr.onload = function(){
   
	console.log(xhr.responseText);
	let res = xhr.getAllResponseHeaders();
	console.log(res)    
}
xhr.send();
  • 后端服务器 允许
    允许非同源进行访问
router.post("/post", async ctx => {
    
	    console.log((ctx.request.body)) // 接收返回的数据
	   
	    // 允许所有的端口访问 即允许跨域
	    // ctx.set("Access-Control-Allow-Origin","*"); 
	    // 1. 不安全  2. 不能设置允许携带凭证
	    // 允许指定的端口访问 
	    ctx.set
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值