vue axios的使用以及解决跨域问题

安装axios(前提是已经安装了vue)

npm install axios --save

使用axios

1. 先在main.js中调用

import axios from 'axios'

axios.defaults.baseURL = "http://www.xxx.com";
Vue.prototype.$http = axios;

2. 在Vue实例中使用

this.$http
  .post('/demo/xxx/xxx', {
    data: data
  })
  .then(function(res) {
    console.log(res.data)
  })
  .catch(function() {
    console.log("error");
  });

 

但是呢,可能会遇上跨域问题

解决方法如下:

1. 修改main.js的代码

// axios.defaults.baseURL = 'http://www.xxx.com'
axios.defaults.baseURL = '/api'

2. 在config/index.js文件中的proxyTable添加以下代码

'/api':{
  target: "http://www.xxx.com",
  changeOrigin:true,
  pathRewrite:{
      '^/api':''
  }
}

 

原理:

因为我们给url加上了前缀/api,我们访问/demo/xxx/xxx就当于访问了:localhost:8080/demo/xxx/xxx(其中localhost:8080是默认的IP和端口)

在index.js中的proxyTable中拦截了/api,并把/api及其前面的所有替换成了target中的内容,因此实际访问url是http://www.xxx.com/demo/xxx/xxx

 

如有错误之处,请指出,互相学习。

Vue使用axios发送GET请求解决跨域问题,可以通过以下步骤: 1. 安装axios:在命令行中运行 `npm install axios` 或者 `yarn add axios`,安装axios库。 2. 在Vue组件中引入axios:在需要使用axios的组件中,可以通过import语句引入axios。 ```javascript import axios from 'axios'; ``` 3. 发送GET请求:使用axios的get方法发送GET请求,并设置`Access-Control-Allow-Origin`头部字段。 ```javascript axios.get('http://api.example.com/data', { headers: { 'Access-Control-Allow-Origin': '*' } }).then(response => { // 处理响应数据 }).catch(error => { // 错误处理 }); ``` 解释:跨域请求是指在浏览器上从一个域名的网页向另一个域名的服务器发送请求。由于浏览器的同源策略限制,普通的Ajax请求只能向同一域名下的接口发送请求,无法直接访问其他域名下的接口。为了解决这个问题,可以使用JSONP、CORS等方式进行跨域请求。 上述代码中,使用Axios库发送GET请求,并在请求头中设置了`Access-Control-Allow-Origin`字段。这个字段指示服务器允许任何源(域、协议和端口)的网站访问该API接口。注意:实际生产环境中,应该根据实际情况设置合适的跨域策略。 相关问题: 1. 除了设置`Access-Control-Allow-Origin`,还有哪些常见的跨域解决方案? 2. Axios支持哪些其他常用的请求方法? 3. 如何处理Axios发送请求时的错误信息?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mossbaoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值