Vue.js 中 axios 跨域访问错误问题及解决方法

2019-11-13,,,,,

1、假如访问的接口地址为 http://www.test.com/apis/index.php  (php api 接口)

2、而开发地址为http://127.0.0.1:8080,当axios发起请求时,出现如下错误:

Failed to load http://www.test.com/apis/index.php?&act=login: The value of the 'Access-Control-Allow-Origin' headerin the response must not be the wildcard '*' when the request's credentials mode is 'include'. Origin 'http://127.0.0.1:8080' is therefore not allowed access. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.

解决方法:

1、修改config/index.js, 修改 proxytable

proxyTable: {
 '/apis': {
   target: 'http://www.test.com/apis/', // 接口地址
   changeOrigin: true, 
   pathRewrite: {
     '^/apis': ''  //需要rewrite重写的,
   }       
 }
},

2、重启 npm run dev    (很重要,否则不生效)

3、访问接口(访问时通过代理转发的,有点类似APACHE的urlrewrite,不需要完整http://www.test.com网址。)

this.$api.get('/apis/index.php?act=login', {
  "act": "login"
 }, response => {
    //success
 },error => {
    //error
 }
);

大功告成,成功解决错误,另外:PHP端不需要做任何的header设置,网上很多教程胡说八道,根本不能实现跨域

总结

以上所述是小编给大家介绍的Vue.js 中 axios 跨域访问错误问题及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对北冥有鱼网站的支持!

您可能感兴趣的文章:

  • vue项目中axios请求网络接口封装的示例代码
  • 详解Vue-axios 设置请求头问题
  • Vue axios全局拦截 get请求、post请求、配置请求的实例代码
  • vue全局使用axios的方法实例详解
  • vue axios请求频繁时取消上一次请求的方法
  • 解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
  • 在Vue中使用axios请求拦截的实现方法
  • vue+axios 前端实现登录拦截的两种方式(路由拦截、http拦截)
  • vue+axios+promise实际开发用法详解
  • Vue中Axios从远程/后台读取数据

《Vue.js 中 axios 跨域访问错误问题及解决方法.doc》

下载本文的Word格式文档,以方便收藏与打印。