视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
vue代理和跨域问题的解决
2020-11-27 22:11:18 责编:小采
文档

一、安装vue-resource插件

cnpm install vue-resource --save

在根目录下的package.json检查一下插件的版本

在rourer-index.js下引入文件

import Resource from 'vue-resource'
Vue.use(Resource)

引入vue-resource后,可以基于全局的Vue对象使用http,也可以基于某个Vue实例使用http 参考链接

二、安装axios插件

cnpm install --save axios

在后台服务文件(server.js)中引入

var axios = require('axios')

新建一个公共Js文件,用于存放httpserver

import axios from 'axios' // 引入axios插件
export function getHttp (url, callFun) { //get请求方法
 axios.get(url).then(callFun)
 .catch(function(err){
 console.log(err)
 })
}

三、proxy代理

config-index.js文件下找到proxyTable设置代理

例如我的vue项目链接是 localhost:8080 后台数据地址是 localhost:8081/api/seller(端口不一样)

proxyTable: {
 '/api': {
 target: 'http://localhost:8081',
 changeOrigin: true,
 pathRewrite: {
 '^/api': '/api' // pathRewrite方法重写url, 这样配置出来的url为http://localhost:8081/api/seller
 // '^/api': '/' // pathRewrite方法重写url, 这样配置出来的url为http://localhost:8081/seller
 }
 }
 }

四、数据调用

在想调用数据的vue页面中写入如下代码

js部分

<script>
import {getHttp} from '../static/js/httpserver.js'
export default {
 data () {
 return {
 seller: {}
 }
 },
 methods: {
 shangjia: function () {
 let url = '/api/seller'
 getHttp(url, function (res) {
 res = res.data
 console.log(res)
 })
 }
 }
}
</script>

html部分

<template>
<div id="app">
 <div @click='shangjia()'><router-link to='/seller'>商家</router-link></div>
<router-view></router-view>
</div>
</template>

推荐可以模拟数据的网址

Easy Mock
rapapi

下载本文
显示全文
专题