详解Vuejs2.0 如何利用proxyTable实现跨域请求


Posted in Javascript onAugust 03, 2017

前言:

本地项目在请求远端服务器接口时,不可避免的会遇到跨域问题,即便是设置了Access-Control-Allow-Origin:* ,在遇到登录这些需要本地存入cookie的也会很头痛,这里笔者介绍一个在vue-cli中配置代理来解决的办法。

在~/config/dev-server.js中 使用了非常强大的http-proxy-middleware 包。更多高级用法,请查阅其文档。

用法:

比如我们要请求的远端服务器为:http://192.168.400:3000

proxyTable: {
   '/api/': {
    target: 'http://192.168.400:3000',
    changeOrigin:true,  //set the option changeOrigin to true for name-based virtual hosted sites
    pathRewrite: {
     '^/api': '/api'
    }
   },
  },
  • 通过设置changeOrigin:true 开启代理
  • pathRewrite 意为重写路径

示例:

比如要请求的接口为http://192.168.400:3000/api/main/getUserInfo.action

this.$http.post('/api/main/getUserInfo.action')
 .then(res=>{
  console.log(res)
 })

后续:

在实际工作中,我们还需要做些其他的,比如在axios中配置baseUrl:

/**
 * Created by Administrator on 2017/4/11.
 */
import axios from 'axios';

// 添加响应拦截器
axios.interceptors.request.use(function (config) {
 // 配置发送请求的信息

 return config;
}, function (error) {
 return Promise.reject(error);
});

axios.interceptors.response.use(function (response) {
 // 配置请求回来的信息

 return response;
}, function (error) {
 return Promise.reject(error);
});

var http = axios.create({
 timeout: 8000, /*设置请求超时时间*/
 baseURL:'http://192.168.400:3000', 

});

// Alter defaults after instance has been created
http.defaults.headers.common['Authorization'] = '';

export default http; 

/**导出http,在mainjs中引用
import http from './config/axiosConfig';
Vue.prototype.$http = http;
**/

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript基础知识大集锦(一) 推荐收藏
Jan 13 Javascript
通过js获取div的background-image属性
Oct 15 Javascript
用循环或if语句从json中取数据示例
Aug 18 Javascript
使用JS获取当前地理位置方法汇总
Dec 18 Javascript
jquery实现点击页面计算点击次数
Jan 23 Javascript
JQuery radio(单选按钮)操作方法汇总
Apr 15 Javascript
使用Vue-Router 2实现路由功能实例详解
Nov 14 Javascript
Vue列表渲染的示例代码
Nov 01 Javascript
原生js实现Flappy Bird小游戏
Dec 24 Javascript
vue自动路由-单页面项目(非build时构建)
Apr 30 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
Aug 12 Javascript
JavaScript基于SVG的图片切换效果实例代码
Dec 15 Javascript
react-native ListView下拉刷新上拉加载实现代码
Aug 03 #Javascript
解决ionic和angular上拉加载的问题
Aug 03 #Javascript
ES6学习教程之Map的常用方法总结
Aug 03 #Javascript
微信小程序之电影影评小程序制作代码
Aug 03 #Javascript
Form表单上传文件(type="file")的使用
Aug 03 #Javascript
微信小程序-滚动消息通知的实例代码
Aug 03 #Javascript
es6 字符串String的扩展(实例讲解)
Aug 03 #Javascript
You might like
最令PHP初学者头痛的十四个问题
2006/07/12 PHP
Discuz 模板语句分析及知识技巧
2009/08/21 PHP
PHP 图片水印类代码
2012/08/27 PHP
ThinkPHP的MVC开发机制实例解析
2014/08/23 PHP
Laravel重写用户登录简单示例
2016/10/08 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
$()JS小技巧
2007/07/21 Javascript
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
2007/08/21 Javascript
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
Bootstrap每天必学之按钮(一)
2015/11/24 Javascript
javascript基于prototype实现类似OOP继承的方法
2015/12/16 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
JavaScript  cookie 跨域访问之广告推广
2016/04/20 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
学习Node.js模块机制
2016/10/17 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
Python中请使用isinstance()判断变量类型
2014/08/25 Python
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
Series和DataFrame使用简单入门
2019/11/13 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
德国健康生活方式网上商店:Landkaufhaus Mayer
2019/03/12 全球购物
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
激励口号大全
2014/06/17 职场文书
与死神共舞观后感
2015/06/15 职场文书
工作简报范文
2015/07/21 职场文书
P站美图推荐——变身女主角特辑
2022/03/20 日漫
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android
《金肉人》米特&《航海王》阿鹤声优松岛实因胰脏癌去世 享寿81岁
2022/04/13 日漫