首页 > 编程 > JavaScript > 正文

webpack+vuex+axios 跨域请求数据的示例代码

2019-11-19 14:13:39
字体:
来源:转载
供稿:网友

本文介绍了webpack+vuex+axios 跨域请求数据的示例代码,分享给大家,具体如下:

使用vue-li 构建 webpack项目,修改bulid/config/index.js文件

dev: {  env: require('./dev.env'),  port: process.env.PORT || 8080,  autoOpenBrowser: true,  assetsSubDirectory: 'static',  assetsPublicPath: '/',  proxyTable: {   '/v2': {     target: 'http://api.douban.com',     changeOrigin: true,     pathRewrite: {      '^/v2': '/v2'    }    }  }, }

在action.js 中想跨域请求

设置action.js:

import axios from 'axios'export const GET_IN_THEATERS = ({ dispatch, state, commit}) => { axios({  url: '/v2/movie/in_theaters' }).then(res => {  commit('in_theaters', res.data) })}

组件内使用:

<template>  <div class="movie-page">    <ul class="clearfix">      <movies-item v-for="(item,index) in movie_list" :key="index" :movie="item"></movies-item>    </ul>  </div></template><script>import {mapState, mapActions, mapGetters} from 'vuex';import MoviesItem from "./movie-item";export default {  data () {    return {          }  },  components: {    MoviesItem  },  computed: {    ...mapState({      movie_list: state => {        return state.in_theaters.subjects      }    })  },  methods: {      },  created () {    this.$store.dispatch('GET_IN_THEATERS')  },  mounted () {  }}</script><style lang="scss">@import "./../../assets/reset.scss";@import "./../../assets/main.scss";.movie-page{  padding: 0 rem(40);}</style>

在组件内想跨域

在main.js设置:

import axios from 'axios'// 将 axios 改写为 Vue 的原型属性,使在其它的组件中可以使用 axiosVue.prototype.$axios = axios

在组件内设置:

<template>  <div class="movie-page">    <ul class="clearfix">      <movies-item v-for="(item,index) in movie_list" :key="index" :movie="item"></movies-item>          </ul>  </div></template><script>import MoviesItem from "./movie-item";export default {  data () {    return {      movie_list: []    }  },  components: {    MoviesItem  },  computed: {      },  methods: {  },  created () {      },  mounted () {    this.$axios.get('/v2/movie/in_theaters').then(res => {      this.movie_list = res.data.subjects    }, res => {      console.infor('error')    })  }}</script><style lang="scss">@import "./../../assets/reset.scss";@import "./../../assets/main.scss";.movie-page{  padding: 0 rem(40);}</style>

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表