Promise 是JS中一种处理异步操作的机制,在现在的前端代码中使用频率很高.Promise 这个词可能有点眼生,但你肯定见过 axios.get(...).then(res => {...}):用于异步请求的 axios 返回的就是一个 Promise 对象. 平时一直在代码中 .then() .catch() 地写来写去,终于决定要认真学一学这个 Promise 到底是怎么回事,希望这篇学习笔记也能帮到你. Promise 对象 一个 Promise 对象表示一个异步操作的执行结果,包括状…
首先提一个小问题:运行下面这段 JS 代码后控制台的输出是什么? console.log("script start"); setTimeout(function () { console.log("setTimeout1"); }, 0); new Promise((resolve, reject) => { setTimeout(function () { console.log("setTimeout2"); resolve(); }…
路由拦截 项目中,有些页面需要登录后才能进入,例如,在某页面A,用户在操作前需要先进入登录页(此时需要将上一页的地址(/survey/start)作为query存入login页面的地址中,如: http://localhost:8071/#/login?redirect=%2Fsurvey%2Freport),登录成功后再进入页面A. 首先,在router.js中创建路由时,给需要登录的路由中的 meta 添加字段:requireLogin,如下: const router = new Rout…
vue 解决axios请求出现前端跨域问题 最近在写纯前端的vue项目的时候,碰到了axios请求本机的资源的时候,出现了访问报404的问题.这就让我很难受.查询了资料原来是跨域的问题. 在正常开发中跨域问题有很多的解决方案.最常见的就是后端修改响应头.但是前端也可以解决,通过反向代理.为了防止下一次这样的错误出现,记录一下,总结一下. 所以现在我们来复盘一下,然后解决掉. 一.为什么会出现跨域的问题? 跨域:浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域.…
一.首页轮播图 1.elementUI走马灯 elementUI中 Carousel 走马灯,可以在有限空间内,循环播放同一类型的图片.文字等内容. 这里使用指示器样式,可以将指示器的显示位置设置在容器外部: <template> <el-carousel indicator-position="outside"> <el-carousel-item v-for="item in 4" :key="item">…
马甲哥继续在同程艺龙写一点大前端: 今天我们来了解一下 如何拦截axios请求/响应? axios是一个基于 promise 的网络请求库,可以用于浏览器和 node.js, promise 类似于C#的Task async/await机制,以同步的代码风格编写异步代码. axios一般发起的是ajax请求,我们一般会封装处理一些通用的 请求/响应动作. 比如马甲哥就遇到: 在每次ajax跨域请求时,允许携带第三方凭据(cookie.authorization) 封装4xx响应码的处理逻辑 其中…
学艺不精啊.....之前就总结过博客: JAVA中解决Filter过滤掉css,js,图片文件等问题 结果现在又犯了老错误~ 情况如下: index.jsp 页面的验证码输入栏绑定了异步验证(jQurey实现),当输入内容发生变化时,异步去后台验证输入是否正确. $(function(){ $("#a").bind('input propertychange',function () { var registName=this.value; var param={"metho…
vue 项目中使用axios请求了本地项目的static文件夹下的json文件,使用npm run build 打包后,在Hbuilder编辑器打开,页面报错404: 在浏览器打开的路径 http://127.0.0.1:8020/poverty/dist/index.html 我们可以看到index.html前面还有两个文件层级,也就是说json文件的路径已经发生变化,而不是原来开发环境下的路径了. 下面我们使用 http-server来解决这个问题: dell@DESKTOP-KD0EJ4H…
测试的源码文件内容点击跳转 前端引入 vue.js 与 axios.min.js <script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script> <script src="https://unpkg.com/axios/dist/axios.min.js"></script> 测试 前端请求 不带 http:// axios.get("loc…
项目文件目录/src/api ajax.js /** * ajax 请求函数模块 * 返回值为promise对象 */ import axios from 'axios' export default function ajax (url, data = {}, type = 'GET') { return new Promise((resolve, reject) => { let promise if (type === 'GET') { // 准备url query 参数数据 let da…