当前位置:网站首页 > 前端开发 > 正文

前端跨域问题怎么解决的(前端跨域解决方案)



由于uni-app是标准的前后端分离模式,开发h5应用时如果前端代码和后端接口没有部署在同域服务器,就会被浏览器报跨域。

在h5页面里callfunction会跨域,此时需在unicloud的web控制台配置域名白名单,被加白的域名可以跨域callfunction。详见:https://uniapp.dcloud.net.cn/uniCloud/quickstart?id=useinh5

另外运行期间在HBuilderX的内置浏览器里是不存在跨域的。

分部署时的跨域方案和调试时的跨域方案,具体见下:

  • 方案1:最利索的,当然还是将前端代码和后端接口部署在同域的web服务器上
  • 方案2:由后台服务器配置策略,设为允许跨域访问。

例如:前端页面部署在uniCloud的前端页面托管里,但是需要访问自己服务器的接口,这时候需要在服务端允许前端页面托管的域名跨域访问。不同的服务端框架允许跨域的配置不一样,这里不再一一列举仅以eggjs为例。

(1)安装egg-cors包

 
  

(2)在plugin.js中设置开启cors

 
  

(3)在config.default.js中配置

 
  

下面是一篇比uni官网文档更详细的配置指南,这里就直接贴地址了:https://juejin.im/post/5e43b0

本插件并非万能,请仔细阅读与学习浏览器安全策略相关知识,不懂这些知识在评论里瞎喷的,官方不会回复。

当我们使用谷歌浏览器调试ajax请求的时候可能会遇到这两个问题:

  • 跨域资源共享 详见:CORS
  • 跨源读取阻塞 详见:CORB

最常见的就是关于跨域资源共享的问题,也就是我们通常说的跨域。当我们本地服务器预览页面,使用ajax访问远程服务器的内容时就会请求失败,比如:本地预览的地址是:http://localhost:8080/,访问的接口地址是http://dcloud.io/api。

Chrome插件名称:Allow-Control-Allow-Origin: *

安装方式:

  • 在线安装
    使用谷歌浏览器直接打开插件地址https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi安装即可



  • 离线安装
    国内用户如果无法在线安装,可在本页面底部下载附件,离线安装
    1. 下载得到:Allow-Control-Allow-Origin.crx
    2. 点击浏览器右上角的菜单按钮打开谷歌浏览器的扩展管理页面




  1. 将下载的扩展插件拖入扩展管理页面

使用方式

  1. 打开待调试的页面
  2. 在扩展栏目找到安装的插件,点击打开插件配置
  3. 输入想要进行跨域调试的接口的地址,点击添加即可

注意事项

  • 此插件适合本地调试使用,线上部署如果和接口不同域还需要服务端配合。
  • 如果实际响应的内容与浏览器预期的内容有差异还可能被CORB策略所阻止。

firefox跨域插件

firefox跨域插件(注意firefox的css兼容问题)

HBuilderX 2.3.0版在某些情况下会报跨域,请升级2.3.1+解决

到此这篇前端跨域问题怎么解决的(前端跨域解决方案)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 前端工程化(前端工程化构建工具)2026-04-05 17:27:08
  • 前端模块化的好处(前端模块化解决方案)2026-04-05 17:27:08
  • 前端工程化 模块化(前端工程化模块化组件化)2026-04-05 17:27:08
  • 前端工程化的理解面试题怎么做(前端工程化的理解简书)2026-04-05 17:27:08
  • 前端跨域(前端跨域产生的原因和解决方法)2026-04-05 17:27:08
  • 前端模块化的好处(前端 模块化)2026-04-05 17:27:08
  • 前端工程师面试题(前端应聘面试题)2026-04-05 17:27:08
  • 前端富文本框(前端富文本框上传图片)2026-04-05 17:27:08
  • 前端 工程化(前端工程化包括哪些方面)2026-04-05 17:27:08
  • 前端的工程化(前端工程化面试题)2026-04-05 17:27:08
  • 全屏图片