创新实训——008

上一篇介绍了Vue.js(以下简称vue)的前端请求,简要说明了axios和websocket的基本使用,但是当你刚开始使用时,你会发现会报跨域错误。

跨域

跨域是浏览器的一种安全机制,基于同源策略,是指当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域,这就可以很好避免因执行外部恶意脚本而造成损害,但是毕竟前后端要分离的话,后台和前端是两个进程要使用不同端口,所以就会造成跨域问题,我在这里提供两种在项目编写过程中可以解决跨域问题的办法。

基于后端的解决办法

像我自己基于flask编写的后端接口,跨域问题就可以在后端解决,只需引入CORSfrom flask_cors import CORS并在编写的接口前添加CORS(app, resources=r'/*')就可以了,类似的spring boot只要在编写的接口前加入@CrossOrigin(origins = "*")就可以了,websocket进行如下定义:

socketIO=SocketIO(app,cors_allowed_origins="*",async_mode=None)

下面关于CORS的介绍引自阮一峰,链接:阮一峰CORS

CORS是一个W3C标准,全称是“跨域资源共享”(Cross-origin resource sharing)。
CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。

整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。

因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。

上面也正好可以解释为什么跨域是浏览器做出的限制,而要在服务器端做操作,因为它们俩在标准下相互配合。

基于前端的解决办法

因为有些时候我们会调用第三方接口,所以此时就没法在后端进行处理,需要考虑基于前端的解决办法。
nginx的反向代理可以解决,我现在使用的是vue,所以要用vue自己的解决方案。
例如我在本系统中需要使用百度的定位IP位置的API,需要:

1、设置代理
在config/index.js文件下设置proxyTable如下:
proxyTable: {
      '/api': {
        target:'http://api.map.baidu.com/location/ip', // 你请求的第三方接口
        changeOrigin:true, // 在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
        pathRewrite:{  // 路径重写,
          '^/api': ''  // 替换target中的请求地址,也就是说以后你在请求http://api.map.baidu.com/location/ip这个地址的时候直接写成/api即可。
        }
      }
}
2、更改axios的请求方式
用api就可以替换http://api.map.baidu.com/location/ip这个地址的
_this.axios.get('api?ak='+_this.ak+'&ip='+newVal)
      .then(function(res){
      //console.log(res.data['status'])
      if(res.data['status']==1){
           _this1.rightMes="本地"
       }else{
           _this1.rightMes=res.data['content']['address_detail']['province']
       }
})

按照上面的解决方法已经可以满足我的使用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园信息化系统解决方案旨在通过先进的信息技术,实现教育的全方位创新和优质资源的普及共享。该方案依据国家和地方政策背景,如教育部《教育信息化“十三五”规划》和《教育信息化十年发展规划》,以信息技术的革命性影响为指导,推进教育信息化建设,实现教育思想和方法的创新。 技术发展为智慧校园建设提供了强有力的支撑。方案涵盖了互连互通、优质资源共享、宽带网络、移动APP、电子书包、电子教学白板、3D打印、VR虚拟教学等技术应用,以及大数据和云计算技术,提升了教学数据记录和分析水平。此外,教育资源公共服务平台、教育管理公共服务平台等平台建设,进一步提高了教学、管控的效率。 智慧校园系统由智慧教学、智慧管控和智慧办公三大部分组成,各自具有丰富的应用场景。智慧教学包括微课、公开课、精品课等教学资源的整合和共享,支持在线编辑、录播资源、教学分析等功能。智慧管控则通过平安校园、可视对讲、紧急求助、视频监控等手段,保障校园安全。智慧办公则利用远程视讯、无纸化会议、数字会议等技术,提高行政效率和会议质量。 教育录播系统作为智慧校园的重要组成部分,提供了一套满足学校和教育局需求的解决方案。它包括标准课室、微格课室、精品课室等,通过自动五机位方案、高保真音频采集、一键式录课等功能,实现了优质教学资源的录制和共享。此外,录播系统还包括互动教学、录播班班通、教育中控、校园广播等应用,促进了教育资源的均衡化发展。 智慧办公的另一重点是无纸化会议和数字会议系统的建设,它们通过高效的文件管理、会议文件保密处理、本地会议的音频传输和摄像跟踪等功能,实现了会议的高效化和集中管控。这些系统不仅提高了会议的效率和质量,还通过一键管控、无线管控等设计,简化了操作流程,使得会议更加便捷和环保。 总之,智慧校园信息化系统解决方案通过整合先进的信息技术和教学资源,不仅提升了教育质量和管理效率,还为实现教育均衡化和资源共享提供了有力支持,推动了教育现代化的进程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值