当前位置:网站首页>跨域网络资源文件下载
跨域网络资源文件下载
2022-08-01 09:50:00 【十玖八柒】
问题
正常情况下是无法发送跨域请求下载文件的。 以下载语雀为例:可以看到直接访问下载地址会报跨域错误
解决
这个时候我们就可以通过nginx配置代理转发请求完成下载:
location ^~ /yuque/ {
proxy_pass https://app.nlark.com/yuque-desktop/;
}说明:当我们像本地发送
/yuque/的请求时,nginx会转发请求(注意:末尾必须要加/不然就是代理请求,加了后才是转发请求),会将/yuque/转发成下面的https://app.nlark.com/yuque-desktop/
然后我们重新写下载请求:
var xhr = new XMLHttpRequest();
xhr.open("GET", "/yuque/1.1.4/Yuque-1.1.4.exe", true);
xhr.send();这次我们不直接访问语雀下载地址了,而是访问我们的本地地址,然后nginx会将我们的请求进行转发,将
/yuque/转发为https://app.nlark.com/yuque-desktop/,那么转发后的请求就变成了https://app.nlark.com/yuque-desktop/1.1.4/Yuque-1.1.4.exe。由于我们并没有直接对下载地址进行请求,而是请求的本地地址,通过nginx进行代理转发请求,因此自然不存在跨域问题(不理解的话,可以看我之前写的有关nginx反向代理的文章)
后记
由于nginx不是通过反向代理的而是进行转发代理请求的,这个过程中资源是经过了一次nginx服务器的,然后再由nginx将资源发送给请求方,因此这个过程是需要消耗nginx所在服务器流量的。
边栏推荐
- 【应用推荐】常见资源管理器整理,含个人使用体验和产品选型推荐
- 使用ESP32驱动QMA7981读取三轴加速度(带例程)
- shell脚本------条件测试 if语句和case分支语句
- 笔记。。。。
- How programmers learn open source projects, this article tells you
- 如何解决 chrome 浏览器标签过多无法查看到标题的情况
- Get the Token from the revised version of Qubutu Bed
- 关于#SQL#的问题,如何解决?
- 企业微信群:机器人定时提醒功能数据库配置化
- Parsing MySQL Databases: "SQL Optimization" vs. "Index Optimization"
猜你喜欢
随机推荐
量化日常工作指标
在GBase 8c数据库后台,使用什么样的命令来对gtm、dn节点进行主备切换的操作
How does UXDB return the number of records for all tables in the current database?
【面试:并发篇39:多线程:线程池】ThreadPoolExecutor类-提交、停止
C语言小游戏——扫雷
Introduction and application of heap memory (including examples)
VS“无法查找或打开PDB文件”是怎么回事?如何解决
招聘随想2022
What's up with VS "Cannot find or open PDB file"?How to solve
解决new Thread().Start导致高并发CPU 100%的问题
Classify GBase 8 s lock
Prime Ring Problem
7/31 训练日志
CTFshow,命令执行:web33
Manual upgrade and optimization tutorial of Lsky Pro Enterprise Edition
阿里腾讯面试一二
朴素贝叶斯--学习笔记--基本原理及代码实现
笔记。。。。
Go-Excelize API source code reading (8) - GroupSheets(sheets []string), UngroupSheets()
MySQL 必现之死锁





![ASP.NET Core 6框架揭秘实例演示[30]:利用路由开发REST API](/img/b3/0167c22f14b97eb0206696495af7b5.png)


