vue.js学习之 跨域请求代理与axios传参

vue.js学习之 跨域请求代理与axios传参

一:跨域请求代理

1:打开config/index.js

module.exports{
    dev: {
    }
}

在这里面找到proxyTable{},改为这样:

proxyTable: {
      ‘/api‘: {
        target: ‘http://121.41.130.58:9090‘,//设置你调用的接口域名和端口号 别忘了加http
        changeOrigin: true,
        pathRewrite: {
          ‘^/api‘: ‘‘//这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用‘http://40.00.100.100:3002/user/add‘,直接写‘/api/user/add’即可
        }
      }
    }

2:在需要调接口的组件中这样使用:

axios.post(‘/api/yt_api/login/doLogin‘,postData)
	.then(function (response) {
		console.log(1)
		console.log(response);
	})
	.catch(function (error) {
		console.log(error);
	})

  注意:原接口:http://http://121.41.130.58:9090/yt_api/login/doLogin

      页面调用:http://localhost:8081/api/yt_api/login/doLogin ——这里多了一个/api/不是多余的,不要删

二:axios传参

1:Vue官方推荐组件axios默认就是提交 JSON 字符串,所以我们要以json字符串直接拼接在url后面的形式,直接将json对象传进去就行了

let postData = {
	‘companyCode‘:‘tur‘,
	‘userName‘:‘123456789123456789‘,
	‘password‘:‘123456‘
}
axios.post(‘/api/yt_api/login/doLogin‘,postData)
	.then(function (response) {
		console.log(1)
		console.log(response);
	})
	.catch(function (error) {
		console.log(error);
	});

这里我们将postData这个json对象传入到post方法中,页面中的形式为:

2:以key:val的形式传参

let postData = qs.stringify({
	companyCode:‘tur‘,
	userName:‘123456789123456789‘,
	password:‘123456‘
})

我们需要对这个json对象操作,这里的qs你需要先安装

npm install qs

再导入

import qs from ‘qs‘

面中的形式为:

时间: 2024-10-17 19:55:06

vue.js学习之 跨域请求代理与axios传参的相关文章

Jsonp的js实现,跨域请求,同源策略机制

Jsonp的js实现,跨域请求,同源策略机制1.跨域请求:请求URL的协议,域名,端口三者之间任意一个与当前页面地址不同即为跨域 存在跨域的情况: 网络协议不同,端口不通,域名不同,子域名不同,域名和域名对应IP不同2.同源策略机制:(相对情况,保护隐私不被泄露) 同源策略概念(Same-Origin Policy) 同源指:域名,协议,端口相同.不同源的客户端脚本(Javascript,ActionScript)在 没明确授权的情况下,不能读写对方的资源.3.Jsonp的js实现: Jsonp

前端跨域方案-跨域请求代理(asp.net handler)

现在技术开发偏向于使用统一的接口处理浏览器或者app的http请求. 大家都知道因为浏览器的同源策略的原因 js直接请求webapi 接口会有一些问题,即使做好服务器端的配置 同样会有不少的 问题  并且会有浏览器的兼容性 而使用jsonp 又需要服务器端对返回数据做相关处理 所以考虑考虑使用代理来解决前端跨域请求的问题. 代理程序走asp.net的一般处理程序,来实现前端js请求的接受然后转发到api站点. 关键点: 1.使用url参数的方式传送api接口的站点路径 http://test.m

MediaElement.js之浏览器跨域请求视频播放

浏览器跨域问题一直以来都是作为前端开发人员常见的问题,所以今天学习了下如何使浏览器跨域请求资源 需要了解的知识 -域(主域,子域,什么是跨域) 简单来说由于浏览器同源策略,凡是发送请求url的协议(http,https).域名(baidu.com,sina.com).端口(80,81)三者之间任意一与当前页面地址不同即为跨域 详解:http://www.cnblogs.com/dojo-lzz/p/4265637.html -jsonp(这里推荐 http://kb.cnblogs.com/pa

node.js配置允许跨域请求,设置允许携带的请求头参数

最近在用node.js写自己的后台时遇见了跨域问题,之前处理跨域都是在前端配置代理解决的,这次打算在后台解决,中途也遇到了一些坑,比如我在请求头里加了一个自定义的参数token,结果后台配置的时候没有允许请求能够携带该参数,造成预检请求发出后,就没任何响应了.为此折腾了半天才发现问题...还是对它不够了解,所以查阅了相关资料,下面做出自己的理解: 都知道跨域是因为浏览器的同源策略造成的,当客户端访问服务端时,如果两端的ip.端口.协议任意一个不同就会产生跨域.下面介绍node.js后台如何配置允

JS 中的跨域请求

跨域请求并不仅仅只是 Ajax 的跨域请求,而是对于一个页面来说,只要它请求了其他域名的资源了,那么这个过程就属于跨域请求了. 比如,一个带有其他域名的 src 的 <img> 标签,以及页面中引入的其他第三方的 CSS 样式等. 对于 img 以及 CSS 而言,跨域请求本身并没有更多的安全问题,因为这些请求都属于只读请求,并不会对源资源造成副作用. 而如果跨域请求是从脚本里面发出去的,由于脚本具有高度灵活性,浏览器出于安全考虑,会根据同源策略来限制它的功能,使得正常情况下,脚本只能请求同源

NodeJ node.js Jquery Ajax 跨域请求

Jquery + Ajax 跨域请求 说白了就是前台请求ajax数据(JSON)但是请求的数据不在本地的绝对路径下,接口数据 是没有这个安全性的我对外公开的接口数据,只要你找到接口你就可以使用里面的数据 ,但是在浏览器端他做了一套机制就是 不让你随意的访问别人服务器的外来接口,如果是好的数据的化  你可以学习使用,如果是一些恶意数据,对服务器对个人来说都是没有安全性的,目前明白一点就是 阻止跨域请求就是 浏览器的原因,也算是ajax的原因,所以这个前台你是无能为力的. 解决办法: 服务器端进行权

js XMLHttpRequest + FormData 跨域提交表单上传文件

funUploadFile : function(file){ var self = this; // 在each中this指向没个v 所以先将this保留 var formdata = new FormData(); formdata.append("index", file.index); formdata.append("fileList", file); var xhr = new XMLHttpRequest(); if ("withCreden

vue.js vue-jsonp解决跨域问题

安装jsonp npm install vue-jsonp --save main.js中引入 import VueJsonp from 'vue-jsonp' Vue.use(VueJsonp) 组件中基本用法 this.$jsonp('/company/Info',{id:233,name:'zhangsan'}).then(json => { // 返回数据 json, 返回的数据就是json格式 }).catch(err => { console.log(err) }) 原文地址:ht

vue-cli项目本地代理实现跨域请求

使用 Vue-cli 创建的项目,开发地址是 localhost:8080,需要访问非本机上的接口http://10.1.0.34:8000/queryRole.不同域名之间的访问,需要跨域才能正确请求.跨域的方法很多,通常都需要后台配置,不过 Vue-cli 创建的项目,可以直接利用 Node.js 代理服务器,通过修改vue proxyTable接口实现跨域请求,在vue-cli项目中的config文件夹下的index.js配置文件中,修改前的dev: dev: { env: require