从Vue中获取图片,是在后端获取,但获取图片url路径是前端的

http://localhost/dev-api/captchaImage

localhost:8080 是后端页面,路径中localhost 默认是localhost:80 端口属于前端页面,由于前后端端口不一样,为了防止跨域问题,使用反向代理,url请求前端进行代理,再映射到后端,解决跨域问题

在vue.config.js进行代理

# 若依管理系统/开发环境

VUE_APP_BASE_API = '/dev-api'

而在pathRewrite中路径重写将/dev-api换为 '' ,保留 captchaImage 再映射到 http://localhost:8080

http://localhost/dev-api/captchaImage > http://localhost/captchaImage >

http://localhost:8080/captchaImage

后端就能接收到代理了

localhost:8080 是后端页面,路径中localhost 默认是localhost:80 端口属于前端页面,由于前后端端口不一样,为了防止跨域问题,使用反向代理,url请求前端进行代理,再映射到后端,解决跨域问题。而在pathRewrite中路径重写将/dev-api换为 '' ,保留 captchaImage 再映射到。从Vue中获取图片,是在后端获取,但获取图片url路径是前端的。在前端所有页面中,开发环境默认url为/dev-api。在vue.config.js进行代理。 Nginx (engine x) 是一个轻量级的、高性能的、基于 Http 的、 反向代理 服务器,静态 web Nginx 最初是由俄罗斯人 Igor Sysoev(伊戈尔·赛索耶夫)使用 C 语言为俄罗斯访问量第 二的 Rambler.ru 站点开发的一款服务器。2004 年 10 月发布第一个版本。 Nginx 的官网: http://nginx.org 国内大型的站点,例如百度、京东、新浪、网易、腾讯、淘宝等,都使用了 Nginx。 https://www.netcraft.com/        正向代理隐藏真实客户端, 反向代理 隐藏真实服务端。 二、 反向代理 解决 的问题 反向代理 解决 的就是 跨域 ,在前后端联调的情况下,前端有服务器,后端也有服务器,那么联调时,就存在 跨域问题 三、 反向代理 的原理         通过伪造请求使得http请求为同源的,然后将同源的请求发送到 反向代理 服务器上,由 反向代理 服务器去请求真正的url,这样就绕过直接请求真正的url导致 跨域问题 。 四、 反向代理 如何使用 在项目目录下cmd 安装axios与http-proxy-middleware模块             npm i axios -S
一、设置代理的原因 现在对前端开发的要求越来越高,并且随着自动化以及模块化的诞生,前后端开发模式越来越流行。后端只负责接口,前端负责数据展示、逻辑处理。但是前后端开发模式,有一个重要的问题,就是 跨域问题 。  二、如何配置webpack的代理 webpack代理需要另外一个插件:webpack-dev-server  webpack-dev-server配置代理非常的方便,只需要条件一个proxy属性,然后配置相关的参数就可以了: var webpack = require('webpack'); var WebpackDevServer = require("webpack-dev-serv
跨域问题 来源于浏览器的同源策略。客户端和服务端不同IP不同端口都算 跨域 spring boot 解决 跨域 有cros,配置就是那几项。 如果把服务端程序部署在nginx上,在nginx 也可以 解决 ,服务端和nginx只用写一个即可, server listen 3002; server_name localhost; location /ok { proxy_pass http://localhost:3000; # 指定允许 跨域 的方法,*代表所有 add_header Access-Control-Allow-M
JSONP JSONP(JSON with Padding)是利用浏览器对script的资源引用没有同源限制,通过动态插入一个script标签,当资源加载到页面后会立即执行的原理实现 跨域 的。 JSONP是一种非正式传输协议,具体做法是:用户传递一个callback参数给服务端。服务端返回数据时用cal 代码如下: header(‘Access-Control-Allow-Origin:*’); header(‘Access-Control-Allow-Headers:X-Requested-With’); 经过测试,webkit内核的浏览器成功实现 跨域 请求。 IE一如既往的不支持~看来只能在移动端享用这一强大功能了 另外,需要注意的是,第一行配置 的*表示允许来自所有referer的 跨域 请求,如果不想完全开放,可以配置为特定域名。这样就能保证只有来自特定域名的 在之前的分享的 跨域 资源共享的文章 ,有提到要注意 跨域 时,如果要发送Cookie,Access-Control-Allow-Origin就不能设为*,必须指定明确的、与请求网页一致的域名。在此次项目开发 与他人协作 就遇到此类问题。 解决 思路 一般来说,与后台利用CORS 跨域 资源共享将Access-Control-Allow-Origin设置为访问的域名即可,这个需要后台的配合,且有些浏览器是不支持的。 基于与合作方后台的配合,利用nginx方向代理来满足浏览器的同源策略来实现 跨域 反向代理 概念 反向代理 (Reverse Proxy)方式是指以代理服务器来接受In 前端调用后端接口,将需要下载的图片https链接传给后端下载 后端需要设置响应头response.addHeader("Access-Control-Allow-Origin", "*"); 允许 跨域 前端需要设置 responseType: 'blob' 告诉后端前端需要的是blob二进制文件流,否则会导致返回乱码 前端发送请求调用后端自定义文件下载接口的代码可以参考:链接指引
Nginx作为 反向代理 服务器可以用来 解决 跨域问题 。通过将本地的URL前缀映射到需要 跨域 访问的Web服务器上,Nginx可以将HTTP请求转发到后端的真实服务器上,并通过rewrite命令去掉前缀。这样,真实的服务器可以正确处理请求,而不知道请求来自代理服务器。\[2\] 在Nginx的配置文件 ,可以使用location指令来匹配需要 跨域 访问的路径,并在proxy_pass 填写需要访问的外域API地址。例如,当访问"http://localhost:8088/api/.*"路径时,可以将proxy_pass设置为"http://test.abc.com/",这样实际上访问的是"http://test.abc.com/.*",但在浏览器 显示的仍然是原来的路径"http://localhost:8088/api/.*"。需要注意的是,在匹配路径和代理路径的末尾都不能少斜杠,这是Nginx的规则。修改完nginx.conf文件后,需要重启Nginx才能生效。\[3\] 通过这种方式,Nginx可以实现 跨域 访问, 解决 跨域问题 。 #### 引用[.reference_title] - *1* [Nginx 反向代理 解决 跨域问题 ](https://blog.csdn.net/weixin_43066287/article/details/121104183)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [ajax nginx 转发 sessionid_【Nginx】使用Nginx如何 解决 跨域问题 ?看完这篇原来很简单!!...](https://blog.csdn.net/weixin_39954698/article/details/109917716)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [nginx 反向代理 解决 跨域 请求问题](https://blog.csdn.net/lm____/article/details/120462636)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]