网站首页 > 博客文章 正文
在网站开发时,经常要调用第三方api(比如百度统计api,对站点访问量等信息进行统计),碰到跨域cors问题,如果有后端服务解决起来就比较简单了,但本文要说的是没有后端服务的情况该如何解决。
一、开发环境
根据使用前端框架不同,在vue.config.js或config\index.js的devServer或dev中添加proxy或proxyTable,归根结底,都是在devServer中添加proxy:
注意secure的值,我的情况是http站点调用了https的api,此处如果设置为true,会导致检查证书时找不到而报出500的错误,设置为false就没问题了。
按以上设置好以后,直接按以下方式使用即可,比如:
原api的调用方式为:
axios.get('https://openapi.baidu.com/rest/2.0/tongji/report/getData?access_token=xxxx)
设置后的api调用方式为:
axios.defaults.baseURL = "/bdapi";
axios.get(/rest/2.0/tongji/report/getData?access_token=xxxx)
二、生产环境
以上代理方式是不支持生产环境的,一般都是建议后端设置跨域,但是对于无后端服务页面该如何做呢,网上说可以使用jsonp的方式,本想用相关插件,比如npm的jsonp或vue-jsonp,但感觉文档太少,按网上说的设置后也不好用,于是干脆直接手撸了。
先定义一个全局回调函数:
调用前先删除已存在的script标签,每次想调用api时通过插入script即可发起请求。
但貌似jsonp这种方式不是太推荐了,还有可能第三方api不支持jsonp,以上百度统计按这种方式是没问题的。如果不支持的话,就得考虑换其他方法了,纯前端实在不行的话,那就不得不考虑加一个后端服务了。
猜你喜欢
- 2025-08-01 无虚拟 DOM、原生级性能、渐进式迁移——Vue 进入双运行时新纪元
- 2025-08-01 Vue3+Bootstrap5整合:企业级后台管理系统实战
- 2025-08-01 自学前端踩了30个坑,终于整理出这份新手避坑指南
- 2025-08-01 vue3.0性能提升主要通过那几方面体现的?
- 2025-08-01 Vue 3.6 虚拟 DOM 移除!Vapor 到来
- 2025-08-01 基于Vue3新标准,打造后台综合解决方案_实战课程_慕课网
- 2025-08-01 面试官:你说你精通Vue3?这10道题能答对3道算我输!
- 2025-08-01 搞定Nginx反向代理,Java和前端从此“听话”了!
- 2025-08-01 面试官:你知道 Vue3 的响应式为什么比 Vue2 更强吗?
- 2025-08-01 如何让 Vue 支持组件 Namespace 形式调用?
你 发表评论:
欢迎- 08-06nginx 反向代理
- 08-06跨表插入连续的日期,sheetsname函数#excel技巧
- 08-06初中生也能学的编程,不走弯路,先用后学
- 08-06find命令的“七种武器”:远不止-name和-type
- 08-06恶意代码常见的编程方式
- 08-06kali2021ping 外网不通
- 08-06因为一个函数strtok踩坑,我被老工程师无情嘲笑了
- 08-06hadoop集群搭建详细方法
- 10℃nginx 反向代理
- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- vueproxytable (64)
- npminstallsave (63)
- #NAME? (61)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)