axios

ASP.NET Core 奇技淫巧之接口代理转发

寵の児 提交于 2020-10-14 11:17:11
前言 先讲讲本文的开发背景吧.. 在如今前后端分离的大背景下,咱的客户又有要求啦~ 要前后端分离~ 然因为种种原因..没办法用用纯前端的框架(其实是学习成本高,又没钱请前端开发人员)... 所以最终决定了一种方案.. 那就是采用MVC(只处理前端视图层,单纯是为了托管在.net core上)+Webapi的方式来实现前后端分离(讲真,很奇葩).. 那么问题就随之而来了. 现在主流的前端框架都是托管在nodejs上,是通过axios来访问后端API,可以通过配置axios的代理配置(proxyTable)来实现跨域访问. 那么我们的JS运行在MVC上,托管在.net core上..那咋办呢?..没有现成的转发轮子..我们只有自己造了.. 所以这就是本篇的背景 - -.~ 正文 幸运的是ASP.NET Core 给我们提供了强大的中间件模式. 我们完全可以通过定义一个转发中间件的形式来实现代理接口转发,流程如图: 废话不多说,我们来创建我们的中间件: 一.创建检测约定URL的接口与实现 首先定义一个接口IUrlRewriter 用来检测我们的URL是否有对应前缀,如果有,则产生新的URL地址: 这里我们定义接口是为了方便以后更好的更换注入类来实现快速更换检测前缀的规则. public interface IUrlRewriter { Task <Uri> RewriteUri

Vue.use(VueAxios,axios)报错cannot set property ‘axios‘ of undefined

Deadly 提交于 2020-10-12 08:34:01
今天在项目中设置接口错误拦截时用到了axios报错, cannot set property ‘axios’ of undefined 解决方法:首先我们需要知道axios是一个库,并不是vue中的第三方插件,使用时不能通过Vue.use()安装插件,需要在原型上进行绑定,所以如何配合vue使用axios? Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource 目前主流的 Vue 项目,都选择 axios 来完成 ajax 请求 之前一直使用的是 vue-resource插件,在主入口文件引入import VueResource from 'vue-resource’之后,直接使用Vue.use(VueResource)之后即可将该插件全局引用了; axios并没有install 方法,所以是不能使用vue.use()方法的。 那么难道每个文件都要来引用一次?解决方法有很多种: 1.结合 vue-axios使用 2.axios 改写为 Vue 的原型属性 //npm $ npm i axios -S $ npm i vue-axios -S //main.js //全局注册 axios import Vue from 'vue'; import axios from 'axios';

Vue简单封装axios—解决post请求后端接收不到参数问题

心不动则不痛 提交于 2020-10-08 07:17:58
Vue简单封装axios—解决post请求后端接收不到参数问题 参考文章: (1)Vue简单封装axios—解决post请求后端接收不到参数问题 (2)https://www.cnblogs.com/tian-long/p/8869191.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4438370/blog/4662945

ThinkPHP6.0 + Vue + ElementUI + axios 的环境安装到实现 CURD 操作!

戏子无情 提交于 2020-10-07 01:02:31
官方文档地址: ​ ThinkPHP6.0: https://www.kancloud.cn/manual/thinkphp6_0/1037479 ​ ElemetUI: https://element.eleme.cn/#/zh-CN ​ axios: https://www.kancloud.cn/yunye/axios/234845 ​ Vue: https://cn.vuejs.org/v2/guide 创建码云仓库 克隆到本地 git clone 你自己的仓库地址 0608 创建数据库 -- 创建数据库 0608 create database `0608` charset utf8; -- 创建数据表 user create table `user` ( `id` int(11) primary key auto_increment comment '用户ID', `name` varchar(30) not null default '未知' comment '用户名', `pwd` varchar(32) not null default '未知' comment '用户密码' ) engine = InnoDB; -- 给 user.name 添加唯一索引 alter table `user` add unique key u_name(`name`); -- 给

浏览器跨域暴力解决

浪子不回头ぞ 提交于 2020-10-07 00:49:12
  都知道跨域是浏览器自己的一种安全限制,对于研发调试很不友好,有其前后端分离,前端使用了vue,发送http请求使用axios,配置nginx各种Access-Control-Allow-Origin,Access-Control-Allow-Headers 等,还不一定能成功。   最暴力的方案,修改本地的chrome浏览器,取消跨域校验 右键浏览器图标,选择属性, 在快捷方式的 目标 里,添加参数 --disable-web-security --user-data-dir=C:\MyChromeDevUserData (注意参数前面有个空格)最后应用保存即可。   去掉跨域检查后浏览器 打开网页速度明显提升 ,老版本的chrome浏览器(版本49号之前)或者 套了chrome壳子的浏览器(360浏览器、搜狗浏览器)等,属性页的目标输入框尾部加的参数为: --disable-web-security   成功之后打开浏览器就会看到如下提示 来源: oschina 链接: https://my.oschina.net/u/4416364/blog/4277273

react中使用axios + mockjs模拟后台数据

▼魔方 西西 提交于 2020-10-06 02:05:07
之前写了在vue中使用mockjs模拟后台接口,现在使用react,也把react中的使用写一下.基本方法和vue一样 我这个项目是用react脚手架搭建的,项目源码地址: https://github.com/shengbid/my-react-admin 1. 安装mockjs和axios yarn add axios -S yarn add mockjs - D 2. 在项目中新建几个文件,文件位置也没有特别规定要放在哪,根据自己的习惯放就行了 需要一个mock文件,配置接口数据;一个axios文件,配置axios;一般还会有一个接口管理文件,放接口名称,现在都不会直接在项目中引入axios调用 3. axios文件配置, 就是正常的请求拦截响应处理 /src/common/request.js import axios from 'axios' import { message } from 'antd' ; const service = axios.create({ // baseURL: '', timeout: 5000 }) service.interceptors.request.use( config => { return config }, error => { console.log(error) return Promise.reject(error)

js css CDN汇总(持续补充)

扶醉桌前 提交于 2020-10-02 15:25:11
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/vue-router@3.0.1/dist/vue-router.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/axios@0.18.0/dist/axios.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/js-cookie@2.2.0/src/js.cookie.min.js"></script> <script src="https://g.alicdn.com/sj/lib/zepto/zepto.min.js"></script> <script src="https://g.alicdn.com/msui/sm/0.6.2/js/??sm.min.js,sm-extend.min.js"></script> <script src="https://g.alicdn.com/msui/sm/0.6.2/js/sm-city-picker.min.js"></script> <script