分析Vuejs2.0 如何利用proxyTable实现跨域请求

内容摘要
这篇文章主要为大家详细介绍了分析Vuejs2.0 如何利用proxyTable实现跨域请求,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!

前言:

本地
文章正文

这篇文章主要为大家详细介绍了分析Vuejs2.0 如何利用proxyTable实现跨域请求,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!

前言:

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

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

用法:

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

代码如下:

1
2
3
4
5
6
7
8
9
10
11
<code>
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'
    }
   },
  },
</code>
  • 通过设置changeOrigin:true 开启代理
  • pathRewrite 意为重写路径

示例:

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

代码如下:

1
2
3
4
5
6
<code>
this.$http.post('/api/main/getUserInfo.action')
 .then(res=>{
  console.log(res)
 })
</code>

后续:

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

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<code>
/**
 * 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;
**/
 
</code>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持php教程。

注:关于分析Vuejs2.0 如何利用proxyTable实现跨域请求的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!