qiankun微前端子应用加载 vue-pdf 时产生跨域问题.
解释:
qiankun 是一种微前端架构,它允许你将多个Web应用程序嵌入到一个主应用中。在这种场景下,子应用如果要加载跨域的资源(如vue-pdf),就会遇到跨域问题。浏览器出于安全考虑,限制了一个源(协议、域名和端口)的文档或脚本与另一个源的资源进行交互。
解决方法:
- 在主应用的服务器上设置CORS(Cross-Origin Resource Sharing)策略,允许来自子应用的请求。
- 如果你控制子应用的服务器,也需要在子应用服务器上设置CORS。
- 使用代理服务器,如Nginx,来转发请求,从而绕过同源策略。
- 如果你有权控制CDN或者是PDF资源的服务器,可以考虑将资源部署到一个允许CORS的服务器上。
示例配置(Nginx):
location /pdfs/ {
proxy_pass http://pdf-server/; # 子应用中请求pdf的地址
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header 'Access-Control-Allow-Origin' '*'; # 或者主应用的域名
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
}
确保配置正确无误,并重启Nginx服务使配置生效。
评论已关闭