当前位置:首页 > 编程教程 > vue技术文章 > vue2.0设置proxyTable使用axios进行跨域请求的方法

vue2.0中proxyTable用axios进行跨域请求的设置方法

  • 发布时间:
  • 作者:码农之家
  • 点击:116

这篇文章主要知识点是关于vue2.0、proxyTable、axios、跨域请求、在vue项目中,使用axios跨域处理 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Spring Boot+Vue全栈开发实战
  • 类型:Spring大小:196.3 MB格式:PDF作者:王松
立即下载

vue2.0设置proxyTable使用axios进行跨域请求的方法

这里请求的是知乎日报的api,由@izzyleung这位大神提供的,这是github地址。

在vue-cli构建的项目中先安装axios

npm install axios -S

这里暂不考虑用vuex封装的方式,只讲在当前组件中直接使用。

先在<script>中引入

vue2.0设置proxyTable使用axios进行跨域请求的方法

用prototype将axios添加为vue原生的属性,$ajax相当于axios的别名。

然后在要调用的方法或是钩子中请求,$ajax就是上面注册的axios,如果想直接用axios不想设置prototype也可以直接按官方的文档来写

vue2.0设置proxyTable使用axios进行跨域请求的方法

vue在配置文件中提供了proxyTable来设置跨域,在config文件夹的index.js文件中

vue2.0设置proxyTable使用axios进行跨域请求的方法

vue2.0设置proxyTable使用axios进行跨域请求的方法

‘/news/lates'对应的是上面ajax请求时的url,target是你真实请求的地址

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

在vue项目中,使用axios跨域处理

跨域,一个很是让人尴尬的问题,有些人可以在后台中设置请求头,但是很多前端并不具备后台的知识,并无法自己独立的搭建一个服务器,所以就变成了一个尴尬的事情

当然,有很多的虚拟服务器,能够解决跨域问题,他们的实质都是通过后台取与后台沟通,从而委婉的解决跨域问题正好,webpack正有这种功能,所以vue-cli也是有解决跨域的能力

当然,不可能我们直接发送ajax就成功,对吧,我们肯定要修改配置文件

在vue项目中,使用axios跨域处理

代码:

dev: {
		env: require('./dev.env'),
		port: 8080,
		autoOpenBrowser: false,
		assetsSubDirectory: 'static',
		assetsPublicPath: '/',
		proxyTable: {
			'/gp': {
				target: 'http://we7.qw1000.cn/',
				changeOrigin: true,
				pathRewrite: {
					'^/gp': '/'
				}
			}
		}
	}

这是一个通用模板,主要涉及到几个概念:

dev,自然是虚拟服务器的意思,

autoOpenBrowser 

也不是多重要的属性,只是配置能不能自动打开浏览器,关键点在于

proxyTable: { 
  '/gp': { 
  target: 'http://we7.qw1000.cn/', 
  changeOrigin: true, 
  pathRewrite: { 
   '^/gp': '/' 
  } 
  } 

配置了我们的对象服务器,让我们的虚拟服务去访问那个网站,当然,这也是webpack的功能,所以也是只能在开发环境下使用

接下里就是我们的ajax代码了。以post为例:

在vue项目中,使用axios跨域处理

methods: {
			hello: function(e) {
				var str;
				console.log(e.target.files[0]);
				var _this = this;
				var that = new FormData();
				that.append("myfile", e.target.files[0]);
				this.$http.post('gp/app/index.php?i=2&c=entry&do=tool/image&m=qw_deal', that)
					.then(function(sures) { console.log(sures);
						console.log("上产成功") })
					.catch(function(catchres) { console.log(catchres);
						console.log("上传失败") })
			}
		},

this.$http是什么鬼???

这自然是我们在main.js中引入了axios的结果,只不过我们不能直接使用use方法,因为他并不是vue的插件,所以需要将其加载到原型链中

import axios from 'axios';
Vue.prototype.$http = axios;

这样我们就可以直接使用了,

在vue项目中,使用axios跨域处理

这是我朋友那边的链接,而且我选择的是一个上传的图像文件的链接

注意点:

1.webpack的跨域解决方法只是是适合在开发环境中使用,

2.设置inde.js内部的dev时,请注意,需要设置的应该是域名,过多会失效,所以应该是www。baidu。com

3.使用axios上传文件,不需要像ajax上传图片一样使用formdata

以上这篇在vue项目中,使用axios跨域处理就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

您可能感兴趣的文章:

  • vue-cli开发时ajax跨域的方法
  • vue中跨域请求 相关电子书
    学习笔记
    网友NO.671756

    vue使用axios跨域请求数据问题详解

    axios默认是没有jsonp 跨域请求的方法的。一般来说流行的做法是将跨域放在后台来解决,也就是后台开发人员添加跨域头信息。 例如java中的 header,response.setHeader("Access-Control-Allow-Origin", www.allow-domain.com) 但是很多时候,后台出于一些原因不想修改或者已经写好jsonp的接口需要适应不同平台,此时,前端就可以单独引入依赖解决该问题了。 引入依赖 cnpm install jsonp 导入到vue文件 import jsonp from 'jsonp' 使用方法(可以参考npm上 jsonp的文档说明) jsonp("http://cross-domain.com",//替换网址 { //jsonp的回调函数名 name: 'success_jsonpCallback' }, //注意第一个参数是 err,第二个参数是 data function (err, data) { console.log(data); }); 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。 ……

    网友NO.208121

    vue引入axios同源跨域问题

    前言: 跨域方案有很多种,既然我们用到了Vue,那么就使用vue提供的跨域方案。 解决方案: 1.修改HttpRequestUtil.js import axios from 'axios' export var baseurl = '/api' /** * Get请求 */ export function get(url, callback){ console.log('测试get请求') axios.get(baseurl+url) .then(function (response) { console.log(response) callback(response.data,true) }) .catch(function (error) { console.log(error) callback(null,false) }) } export default { get } 2.修改index.js 'use strict' // Template version: 1.3.1 // see http://vuejs-templates.github.io/webpack for documentation. const path = require('path') module.exports = { dev: { // Paths assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: { '/api': { target: 'http://127.0.0.1:8088',//设置你调用的接口域名和端口号 别忘了加http changeOrigin: true, pathRewrite: { '^/api': 'http://127.0.0.1:8088'//这里理解成用‘/api'代替target里面的地址,后面组件中我们掉接口……

    网友NO.382723

    vue 本地环境跨域请求proxyTable的方法

    主要在config-index.js中配置 proxyTable: { ‘/gameapi': { changeOrigin: true, // target: ‘http://rap.id.cn/mockjs/20‘, mock地址 target: ‘http://192.168.1.124‘,服务器地址 pathRewrite: { ‘^/gameapi': ‘/gameapi' }, secure:false } } 因此,发送请求时候url写为('/gameapi/gift-applylist')就能拿到接口数据。 但是注意配置后需要重新npm run dev才会生效。 当然如果有两个不同路径也可以配置两个 proxyTable: { ‘/gameapi': { changeOrigin: true, // target: ‘http://rap.id.cn/mockjs/20‘, target: ‘http://192.168.1.124‘, pathRewrite: { ‘^/gameapi': ‘/gameapi' }, secure:false }, ‘/cps': { changeOrigin: true, // target: ‘http://rap.idu.cn/mockjs/20‘, target: ‘http://192.168.1.124‘, pathRewrite: { ‘^/cps': ‘/cps' }, secure:false } }, 以上这篇vue 本地环境跨域请求proxyTable的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之……

    网友NO.336107

    Vue-resource实现ajax请求和跨域请求示例

    vue-resource是Vue提供的体格http请求插件,如同jQuery里的$.ajax,用来和后端交互数据的。 在使用时,首先需要安装vue-resource插件 1.在项目跟目录上安装: npm install vue-resource 2.引入resource插件 import VueResource from 'vue-resource'; Vue.use(VueResource) 3.发送请求: this.$http.get("http://www.vrserver.applinzi.com/aixianfeng/apihome.php").then(function(res){ console.log(res) }) ES6写法: this.$http.get('url', [options]).then((res) = { // 处理成功的结果}, (res) = { // 处理失败的结果}); 在发送请求后,使用then方法来处理响应结果,then方法有两个参数,第一个参数是响应成功时的回调函数,第二个参数是响应失败时的回调函数。 then方法的回调函数也有两种写法,第一种是传统的函数写法,第二种是更为简洁的ES 6的Lambda写法: POST请求: this.$http.post("http://www.vrserver.applinzi.com/aixianfeng/apihome.php",{name:"abc"},{emulateJS……

    网友NO.487651

    Django+Vue跨域环境配置详解

    概述 在使用Django+Vue开发过程中,遇到了很多开发环境相关的问题,比如跨域,比如ajax请求参数等,本篇文章主要记录解决在开发过程中,遇到的一些问题。 跨域不带Cookie 在使用Vue脚手架开发的过程中,会使用Vue脚手架自带的Server进行项目调试,Vue自带的Server支持 hot reloading ,这个特性是非常好用的。但是在开发过程中,因为要与后端交互,所以在请求后端接口的时候,会遇到跨域问题,这个问题在一些职责划分清楚的团队并不存在,因为前端开发人员会才用Mock数据的方式。 Webpack配置 采用Webpack dev server的 proxyTable 即可实现代理,将请求转发到后端的开发服务器上。配置方法如下: proxyTable: { '/api': { target: 'http://127.0.0.1:8190/', changeOrigin: true }, '/manager': { target: 'http://127.0.0.1:8000/', changeOrigin: true, }} 将需要请求的真实地址在proxyTable里配置即可。 当然,……

    <
    1
    >

    Copyright 2018-2020 www.xz577.com 码农之家

    版权投诉 / 书籍推广 / 赞助:520161757@qq.com