vue请求和跨域

	vue本身不支持发送AJAX请求,需要使用vue-resource、axios等插件实现
	axios是一个基本Promise的HTTP请求客户端,用来发送请求,也是vue2.0官方推荐的,
	同时不再对vue-resource进行更新和维护

axios发送AJAX请求

	安装axios 
	npm install axios -S
基本用法
  • axios([options])
  • axios.get(url[,options]) 传参方式:1.通过url 传参 2.通过params选项传参
  • axios.post(url,data,[options]) axios默认发送数据时,数据格式是Request Payload(也就是对象传入,后台接收json数据),并非我们常用的Form Data格式(字符串拼接参数的形式传入),所以参数必须要以键值对形式传递,不能以json形式传参,传参方式:

1. 自己拼接为键值
2. 使用transformRequest,在请求发送前将请求数据进行转换
3. 如果使用模块化开发,可以使用qs模块进行转换

	另外axios不是全局组件,需要使用时,在每个文件都要引入,如果想达到全局效果,
	可以在main.js	用原型进行绑定Vue.prototype.$http=Axios

Proxy代理

  对于前后端分离模式下,前端请求后端存在跨域问题,除了后端主动设置允许跨域请求的类型,
  前端也可使用proxy代理来转发请求实现跨域

项目准备
1 vue init webpack proxy-demo

2 cd proxy-demo

3 npm install

4 npm install axios -S

5 npm run dev

在下面文件下的proxyTable配置代理

proxyTable: {
      // 开发环境dev
      '/flask-api': {//前端路由匹配模式
        target: 'http://hzb.nat300.top',  //后端请求服务域名和端口
        changeOrigin: true,   //设置请求头
        pathRewrite: {
          '^/flask-api': '/cache'   //路径重写  前端/flask-api 对应 后端/
        },
      }
  就拿login举例,前端localhost:8080/flask-api/login  --> 
  后端http://localhost:9001/login,而在用axios发送请求时,
  不用写localhost:8080,直接写/flask-api/login就可以了

其他

 axios本身并不支持发送跨域请求,需要使用vue-resource发送跨域请求

安装

npm install vue-resource -S

基本用法

使用this.$http发送请求

   this.$http.get(url, [options])
   this.$http.head(url, [options])
   this.$http.delete(url, [options])
   this.$http.jsonp(url, [options])
   this.$http.post(url, [body], [options])
   this.$http.put(url, [body], [options])
   this.$http.patch(url, [body], [options])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值