当前位置:网站首页>跨域网络资源文件下载
跨域网络资源文件下载
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所在服务器流量的。
边栏推荐
- 量化日常工作指标
- 周鸿祎称微软抄袭 360 安全模式后发文否认;英特尔CEO基辛格回应市值被AMD超越:股价下跌是咎由自取|极客头条
- 7. SAP ABAP OData 服务如何支持 $orderby (排序)操作
- net stop/start mysql80 access denied
- Comprehensive experiment BGP
- 企业微信群:机器人定时提醒功能数据库配置化
- mysql login in cmd and basic operations of database and table
- CTFshow,命令执行:web34、35、36
- Py之yellowbrick:yellowbrick的简介、安装、使用方法之详细攻略
- 高级驾驶辅助系统ADAS简介
猜你喜欢
随机推荐
C语言小游戏——扫雷
Parsing MySQL Databases: "SQL Optimization" vs. "Index Optimization"
Go-Excelize API source code reading (8) - GroupSheets(sheets []string), UngroupSheets()
Install GBase 8 c database, the error shows "Resource, how to solve?
opencv创建窗口—cv.namedWindow()
ClickHouse多种安装方式
Idea 常用插件
周鸿祎称微软抄袭 360 安全模式后发文否认;英特尔CEO基辛格回应市值被AMD超越:股价下跌是咎由自取|极客头条
报告:想学AI的学生数量已涨200%,老师都不够用了
Change Servlet project to SSM project
如何在IntellJ IDEA中批量修改文件换行符
AI篮球裁判火了,走步算得特别准,就问哈登慌不慌
Redis middleware (from building to refuse pit)
对于小应用来讲,使用哪款数据库比较好?
微信公众号授权登录后报redirect_uri参数错误的问题
GBase 8c中怎么查询数据库配置参数,例如datestyle
Redis learning
50.【Application of dynamic two-dimensional array】
Redis中间件(从搭建到弃坑)
Naive Bayes--Study Notes--Basic Principles and Code Implementation








