axios

post请求导出Excel表格

纵饮孤独 提交于 2020-05-04 03:44:57
axios . interceptors . response . use (( response ) => { if ( response . config && response . config . responseType == 'blob' ) { const blob = new Blob ([ response . data ], { type: 'application/x-msdownload' }); //后台需要相同的type let filename = ` ${ name } .xls` ; if ( 'download' in document . createElement ( 'a' )) { const downloadElement = document . createElement ( 'a' ); let href = '' ; if ( window . URL ) href = window . URL . createObjectURL ( blob ); else href = window . webkitURL . createObjectURL ( blob ); downloadElement . href = href ; downloadElement . download = filename ; document .

WebApi安全性 参数签名校验(结合Axios使用)

别等时光非礼了梦想. 提交于 2020-05-04 02:49:23
接口参数签名校验,是WebApi接口服务最重要的安全防护手段之一. 结合项目中实际使用情况,介绍下前后端参数签名校验实现方案。 签名校验规则 http请求,有两种传参形式: 1.通过url传参,最常见的就是get请求(实际上post,put,delete都可以使用这种传参方式),如: http://api.XXX.com/getproduct?id=value1 2.通过request body传参,最常见的就是post请求,如下图所示 我们针对于以上两种传参方式,采用不同的签名校验规则(<font color="red">注:签名算法规则仅供参考</font>)。WebApi是不支持通过url和body同时传参数的,所以在服务端可以通过<font color='#2D8CF0'>HttpContext.Current.Request.QueryString</font> 获取到form参数进行判断,执行不同逻辑,如下代码所示: var form = HttpContext.Current.Request.QueryString; // 请求的url参数 var data = string.Empty; if (form.Count > 0) { //第一步:取出所有form参数 IDictionary<string, string> parameters = new

2年vue项目实战经验汇总

拟墨画扇 提交于 2020-05-03 19:25:52
前言 vue作为前端主流的3大框架之一,目前在国内有着非常广泛的应用,由于其轻量和自底向上的渐进式设计思想,使其不仅仅被应用于PC系统,对于移动端,桌面软件(electronjs)等也有广泛的应用,与此诞生的优秀的开源框架比如elementUI,iView, ant-design-vue等也极大的降低了开发者的开发成本,并极大的提高了开发效率。 笔者最初接触vue时也是使用的iview框架,亲自体会之后确实非常易用且强大。 笔者曾经有两年的vue项目经验,基于vue做过移动端项目和PC端的ERP系统,虽然平时工作中采用的是react技术栈,但平时还是会积累很多vue相关的最佳实践和做一些基于vue的开源项目,所以说总结vue的项目经验我觉得是最好的成长,也希望给今年想接触vue框架或者想从事vue工作的朋友带来一些经验和思考。 你将收获 vue框架使用注意事项和最佳经验 vue项目配置经验总结 vue组件设计经验总结 vue项目架构与服务化探索 正文 本文不仅仅是总结一些vue使用踩过的一些坑和项目经验,更多的是使用框架(vue/react)过程中的方法论和组件的设计思路,最后还会有一些个人对工程化的一些总结,希望有更多经验的朋友们可以一起交流,探索vue的奥妙。 在开始文章之前,笔者建议大家对javascript, css, html基础有一定的了解

TusP/wps-view-vue

爱⌒轻易说出口 提交于 2020-05-02 14:10:15
项目介绍 本项目采用VUE + ES6实现,其中jwps.es6.js是由WPS开发组特别提供,本项目对该js做了部分调整 本次更新 增加新建模版入口,快速新建word,excel,ppt文件 增加上传、删除等文件管理入口 调整目录结构,调整vueconfig 特别注意 次前端工程必须配合后台部分使用 main.js 中的axios.defaults.baseURL请自行更换,必须和 wps开放平台 上的回调URL一致 演示地址 https://ljserver.cn/wpsonline 后台java代码地址 https://gitee.com/mose-x/wps-view-java.git 安装依赖 yarn install 开发运行 yarn serve 生产打包 yarn build 来源: oschina 链接: https://my.oschina.net/u/4393870/blog/4262004

【重学Node.js 第4篇】实现一个简易爬虫&启动定时任务

时间秒杀一切 提交于 2020-05-02 10:01:33
实现一个简易爬虫&启动定时任务 课程介绍看这里: https://www.cnblogs.com/zhangran/p/11963616.html 项目github地址: https://github.com/hellozhangran/happy-egg-server 爬虫 目前 node.js 爬虫工具比较火的有 node-crawler puppeteer 。不过我目前没打算用这些,因为至少现在我们的项目还用不到。只要能发送请求、解析dom我们就能自己实现一个爬虫。所以我选择了axios + cheerio来自己写爬虫。 获取博客园的推荐文章 首先我们用 axios + cheerio 来获取博客园的首页编辑推荐文章,并解析出这篇文章的正文部分。 // controller/crawler.js 文件 const axios = require('axios'); const cheerio = require('cheerio'); // articleCtrl是一个写好了的controller,里面有存储数据到mongo的逻辑。 const articleCtrl = require('./article'); async function cnblogs () { const res = await axios.get('https://www.cnblogs.com/

web前端常见面试题(js原生,vue,es6,小程序)合集

余生长醉 提交于 2020-05-02 03:57:58
VUE 1.什么是 vue 生命周期 2.vue生命周期的作用是什么 3.第一次页面加载会触发哪几个钩子 4.简述每个周期具体适合哪些场景 5.created和mounted的区别 6.vue获取数据在哪个周期函数 7.请详细说下你对vue生命周期的理解? vue路由面试题 mvvm 框架是什么? vue-router 是什么?它有哪些组件 active-class 是哪个组件的属性? 怎么定义 vue-router 的动态路由? 怎么获取传过来的值 vue-router 有哪几种导航钩子? 6.$route 和 $router 的区别 7.vue-router响应路由参数的变化 8.vue-router传参 9.vue-router的两种模式 10.vue-router实现路由懒加载( 动态加载路由 ) vue常见面试题 1.vue优点 2.vue父组件向子组件传递数据? 3.子组件像父组件传递事件 4.v-show和v-if指令的共同点和不同点 5.如何让CSS只在当前组件中起作用 6.<keep-alive></keep-alive>的作用是什么? 7.如何获取dom 8.说出几种vue当中的指令和它的用法? 9. vue-loader是什么?使用它的用途有哪些? 10.为什么使用key 11.axios及安装 12.axios解决跨域 13.v-modal的使用 14

Vue数据请求 axios vs fetch

烈酒焚心 提交于 2020-05-02 00:28:08
Vue数据请求 数据请求在前端开发中的使用有两种形式 使用原生javascript提供的数据请求 ajax( 四部曲,一般需要我们结合Promise去封装,使用不是很便利,但是效率很高 ) fetch( 本身结合了Promise,并且已经做好了封装,可以直接使用 ) 使用格式: 使用别人封装好的第三方库 目前最流行的,使用率最高的是 axios vue中我们最常使用的 vue 1.x 的版本提供了一个封装库 vue-resource , 但是到了vue 2.x版本之后,这个就弃用了 vue-resource使用方法和 axios 相似度在 95% vue-resouce有jsonp方法,但是axios是没有的 vue2.x版本我们最用使用的数据请求是 axios 和 fetch 数据请求的类型 get post head put delete option … axios vs fetch axios得到的结果会进行一层封装,而fetch会直接得到结果 举例: axios {data : 3 , status : 200 , statusText : "OK" , headers : {… } , config : {… } , … } config : {adapter : ƒ , transformRequest : {… } , transformResponse : {…

vue-resource的使用中需要注意的坑

一世执手 提交于 2020-05-01 22:40:20
  先看一段代码: export default { name: ' app ' , data() { return { articles: [] } }, created: function() { this .$http. get ( ' /api/user/order/list ' , { productType: " 1 " , pageNum: 1 , pageLimit: 8 }, { headers: { }, emulateJSON: true }).then((response) => { this .articles = response.data.data.list; }). catch (function(response) { console.log(response); }); } } 1、get传参数的坑:加params对象传参   调用接口时所传的参数并没有传参成功,后来去网上多方搜查资料,原来get的请求参数需要放在params里面,发现把传参方式修改成如下形式即可: { params : { productType: " 1 " , pageNum: 1 , pageLimit: 8 } }   和之前的传参方式不同,这次我把参数加在了一个名为params的对象中,再次打包后上传,发现接口调用成功!当然你也可以把参数直接放在url中

20202501

☆樱花仙子☆ 提交于 2020-05-01 22:36:58
js axios发起get请求 axios.get('http://rap2api.taobao.org/app/mock/238720/getMapping', { params: { userId: "1" } }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); js axios发起post请求 axios.post('http://rap2api.taobao.org/app/mock/238720/postMapping', { params: { userId: "1" } }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); 来源: oschina 链接: https://my.oschina.net/shenGuangYue/blog/4261283

Axios你可能不知道使用方式

怎甘沉沦 提交于 2020-05-01 21:12:13
在前端日常开发中除了纯静态展示页面,必不可少的就是做一些接口请求,从 XMLHttpRequest ,到 jQuery 的 ajax ,再到后来的 Fetch 和 Axios 。 为什么选择 Axios 从浏览器中创建 XMLHttpRequests 从 node.js 创建 http 请求 支持 Promise API 拦截请求和响应 转换请求数据和响应数据 取消请求 自动转换 JSON 数据 客户端支持防御 XSRF 为什么不用 Fetch fetchtch只对网络请求报错,对400,500都当做成功的请求,需要封装去处理 fetch默认不会带cookie,需要添加配置项(Axios也需要) fetch不支持abort,不支持超时控制,使用setTimeout及Promise.reject的实现的超时控制并不能阻止请求过程继续在后台运行 fetch没有办法原生监测请求的进度 基本配置 安装 # npm $ npm install axios # yarn $ yarn add axios # cdn <script src= "https://unpkg.com/axios/dist/axios.min.js" ></script> 复制代码 直接使用 1、使用 . 执行某个请求方法, [method name] 包含了 request 、 head 、 get 、 put 、