当前位置:首页 > CN2资讯 > 正文内容

搭建axios服务器 axios请求服务器

2天前CN2资讯

文章目录

  • Vue 中的 ajax
  • 4.1 案例分析:使用axios发请求
  • 4.2 vue脚手架配置代理服务器 (解决开发环境 Ajax 跨域问题)
  • 4.2.1 方法一
  • 4.2.2 方法二
  • 4.3 vue 项目中常用的 2 个 Ajax 库
  • 4.3.1 axios
  • 4.3.2 vue-resource
  • 4.4 插槽

Vue 中的 ajax

4.1 案例分析:使用axios发请求

案例:使用axios发请求(获取学生信息)

  • 这里提前准备好两台服务器,用nodejs写的server1.js server2.js
  • 启动服务
  • 下载一下这个库
  • 编写代码
  • App.vue

    <template> <div> <!-- 2 给一个点击事件获取学生信息--> <button @click="getStudents">获取学生信息</button> </div> </template> <script> // 1 引入axios import axios from 'axios' export default { name:'App', // 3 配置一个methods methods: { // 4 获取学生信息 getStudents(){ // 5 发请求 (get请求 url就是刚刚启动服务器后出现的地址,请求返回的是一个promise) axios.get('http://localhost:5000/students').then( // 成功的形参叫response,给的是响应对象,响应对象里面的data属性才是服务器真正给的东西。 失败的叫error response => { console.log('请求成功了',response.data) }, error => { console.log('请求失败了',error.message) } ) }, }, } </script>

    按照上面代码写,会报错

    存在同源策略(协议名 主机名 端口号一致)问题,如何解决呢?

  • 后端配置一些响应头可以解决 cors
  • jsonp 使用script里面的src 需要前后端配合 只能解决get请求(很巧妙,但是几乎不用,但是面试可能用问)
  • 配置一个代理服务器(用这个)
  • 如何开启这个代理服务器的8080呢?

  • nginx (反向代理服务器,需要了解一些后端,这里不用)
  • vue-cli(用脚手架,好用简单)
  • 4.2 vue脚手架配置代理服务器 (解决开发环境 Ajax 跨域问题)

    4.2.1 方法一

    在vue.config.js中添加如下配置:

    // 开启代理服务器 // 目前位置8080(前端),代理服务器8080,这些不用管,我们这里是代理服务器8080把请求发给谁,下面就写谁(5000) devServer:{ proxy:"http://localhost:5000" }

    配置好了,代理服务器,直接运行还是会报错,需要把刚刚App里面发请求的地址改成代理服务器的

    App.vue

    <template> <div> <!-- 2 给一个点击事件获取学生信息--> <button @click="getStudents">获取学生信息</button> </div> </template> <script> // 1 引入axios import axios from 'axios' export default { name:'App', // 3 配置一个methods methods: { // 4 获取学生信息 getStudents(){ // 5 发请求 (get请求 url就是刚刚启动服务器后出现的地址,请求返回的是一个promise) axios.get('http://localhost:8080/students').then( // 成功的形参叫response,给的是响应对象,响应对象里面的data属性才是服务器真正给的东西。 失败的叫error response => { console.log('请求成功了',response.data) }, error => { console.log('请求失败了',error.message) } ) }, }, } </script>

    运行之后显示:

    说明:

  • 优点:配置简单,请求资源时直接发给前端(8080)即可。
  • 缺点:不能配置多个代理,不能灵活的控制请求是否走代理。
  • 工作方式:若按照上述配置代理,当请求了前端不存在的资源时,那么该请求会转发给服务器 (优先匹配前端资源)
  • 4.2.2 方法二

    编写vue.config.js配置具体代理规则:

    module.exports = { devServer: { proxy: { '/api1': {// 匹配所有以 '/api1'开头的请求路径 target: 'http://localhost:5000',// 代理目标的基础路径 changeOrigin: true, pathRewrite: {'^/api1': ''} }, '/api2': {// 匹配所有以 '/api2'开头的请求路径 target: 'http://localhost:5001',// 代理目标的基础路径 changeOrigin: true, pathRewrite: {'^/api2': ''} } } } } /* changeOrigin设置为true时,服务器收到的请求头中的host为:localhost:5000 changeOrigin设置为false时,服务器收到的请求头中的host为:localhost:8080 changeOrigin默认值为true */

    说明:

  • 优点:可以配置多个代理,且可以灵活的控制请求是否走代理。
  • 缺点:配置略微繁琐,请求资源时必须加前缀。
  • 4.3 vue 项目中常用的 2 个 Ajax 库

    4.3.1 axios

    通用的 Ajax 请求库, 官方推荐,使用广泛

    4.3.2 vue-resource

    vue 插件库, vue1.x 使用广泛,官方已不维护。

    4.4 插槽

  • 作用:让父组件可以向子组件指定位置插入html结构,也是一种组件间通信的方式,适用于 父组件 ===> 子组件
  • 分类:默认插槽、具名插槽、作用域插槽
  • 使用方式:
  • 默认插槽:
  • 父组件中: <Category> <div>html结构1</div> </Category> 子组件中: <template> <div> <!-- 定义插槽 --> <slot>插槽默认内容...</slot> </div> </template>
  • 具名插槽:
  • 父组件中: <Category> <template slot="center"> <div>html结构1</div> </template> <template v-slot:footer> <div>html结构2</div> </template> </Category> 子组件中: <template> <div> <!-- 定义插槽 --> <slot name="center">插槽默认内容...</slot> <slot name="footer">插槽默认内容...</slot> </div> </template>
  • 作用域插槽:
  • 理解:数据在组件的自身,但根据数据生成的结构需要组件的使用者来决定。(games数据在Category组件中,但使用数据所遍历出来的结构由App组件决定)
  • 具体编码:
  • 父组件中: <Category> <template scope="scopeData"> <!-- 生成的是ul列表 --> <ul> <li v-for="g in scopeData.games" :key="g">{{g}}</li> </ul> </template> </Category> <Category> <template slot-scope="scopeData"> <!-- 生成的是h4标题 --> <h4 v-for="g in scopeData.games" :key="g">{{g}}</h4> </template> </Category> 子组件中: <template> <div> <slot :games="games"></slot> </div> </template> <script> export default { name:'Category', props:['title'], //数据在子组件自身 data() { return { games:['红色警戒','穿越火线','劲舞团','超级玛丽'] } }, } </script>

      你可能想看:

      扫描二维码推送至手机访问。

      版权声明:本文由皇冠云发布,如需转载请注明出处。

      本文链接:https://www.idchg.com/info/20600.html

      分享给朋友:

      “搭建axios服务器 axios请求服务器” 的相关文章

      如何配置防火墙例外:确保网络安全与便利的详细步骤

      什么是防火墙例外? 在数字化时代,网络安全显得尤为重要。我认为,防火墙是保护我们的计算机免受恶意攻击和未经授权访问的重要工具。在这里,防火墙的一个关键概念就是防火墙例外。简单来说,防火墙例外是指允许某些特定的程序或服务在防火墙的保护下依旧能够自由访问网络。这种设置对于许多需要网络连接的应用来说必不可...

      RackNerd 密码管理与安全指南:保护您的账户安全

      RackNerd 密码管理与安全 在探讨RackNerd的密码管理与安全之前,了解这个主机商的背景有助于我们更好地理解其服务的重要性。RackNerd成立于美国,专注于提供多种主机服务,包括虚拟主机、KVM VPS、Hybrid Dedicated Servers和独立服务器租用等。这些服务非常适合...

      WordPress reCAPTCHA插件:提升网站安全与用户体验的最佳解决方案

      reCAPTCHA插件概述 在今天的网络环境中,安全性愈发重要,尤其是对于使用WordPress的网站。WordPress reCAPTCHA插件成为了一种流行的解决方案,它借助Google强大的reCAPTCHA服务,帮助我们有效地区分真实用户和可能扰乱网站的机器程序。在我接触这个插件之后,发现它...

      甲骨文注册的重要性与流程详解

      什么是甲骨文注册 甲骨文注册,顾名思义,是对甲骨文进行官方备案的过程。甲骨文是中国古代的一种文字,最早出现在商朝晚期,主要被用于记录卜辞。这种文字不仅在语言和文化上有着重要的地位,还是研究古代历史和社会的一把钥匙。通过甲骨文注册,相关机构和个人可以对其研究或使用活动进行合法的保护和管理,确保甲骨文的...

      韩国电信行业的发展与未来展望

      韩国电信概述 在谈到韩国电信的时候,我常常会被这个国家在技术和通信领域的发展速度所吸引。从上世纪六十年代开始,韩国的电信行业就开始了它的发展历程。早期,政府主导了整个电信市场的建设,提供了基础设施。然而,随着经济的快速增长和技术的不断进步,私营企业逐渐崭露头角,形成了今天竞争激烈的电信市场。 历史上...

      Linode 100美元套餐:灵活高性价比的云服务选择

      在进入Linode的世界之前,了解这家公司的历史和背景是非常重要的。Linode成立于2003年,最初的目标是提供可靠的云服务,帮助开发者和企业创建和管理他们的应用。随着时间的推移,Linode不断发展,提升了其基础设施和服务,使其成为全球云服务行业的重要玩家。它以其高性能、易于使用的控制面板和卓越...