iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >解决Vue2跨域报错AxiosError net::ERR_FAILED、 Network Error、ERR_NETWORK
  • 450
分享到

解决Vue2跨域报错AxiosError net::ERR_FAILED、 Network Error、ERR_NETWORK

vue2跨域报错vue2 axioserror net 2022-11-16 00:11:53 450人浏览 安东尼
摘要

目录请求场景:跨域报错信息Vue2跨域问题报错截图解决方法解决方法解析:总结请求场景: 当前页面URL:Http://127.0.0.1:8000/testcase 跳转请求页面UR

请求场景:

当前页面URL:Http://127.0.0.1:8000/testcase

跳转请求页面URL:http://127.0.0.1:5000/testcase_ORM

使用axiOS请求 时 页面提示跨域报错

跨域报错信息

Access to XMLHttpRequest at ‘http://127.0.0.1:5000/testcase_orm’ from
origin ‘http://localhost:8080’ has been blocked by CORS policy: No
‘Access-Control-Allow-Origin’ header is present on the requested
resource.

AxiosError {message: ‘Network Error’, name: ‘AxiosError’, code:
‘ERR_NETWORK’

Vue2跨域问题报错截图

通过对代码以及报错信息分析,问题出现在跨域请求上,(跨域请求:跨域是指浏览器不允许当前所在的源请求去访问另一个不一样的源请求,源是指请求协议、域名、端口号,这三个如果有一个不一致就是跨域请求)

当前URL请求URL是否跨域结果分析
http://www.kuakuakua.comhttp://www.kuakuakua.com/index.html同源(域名、协议、端口号一致)
http://www.kuakuakua.comhttps://www.kuakuakua.com跨域协议不同(http/https)
http://www.kuakuakua.comhttp://www.javashuo.com/跨域域名不同(www.kuakuakua.com/www.javashuo.com)
http://www.kuakuakua.com:8080http://www.kuakuakua.com:8081跨域端口号不同(8080/8081)

解决方法

步骤一:在项目目录下找到 vue.config.js 文件打开编辑

步骤二:按照图中的结构,将给出的代码复制到 module.exports 中

devServer: {
    proxy: {
      "/proxy_url":{           // /proxy_url 这个用来和根路径 baseURL 进行匹配
        target: 'http://127.0.0.1:5000',  // 这个是填写跨域的请求域名+端口号,也就是要请求的URL(不包含URL路径)
        changeOrigin: true,  // 是否允许跨域请求,在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
        pathRewrite: {   // 路径重写
            '^/proxy_url': '/' // 替换target中的请求地址,原请求为 http://127.0.0.1:8000/kuayu 实际请求为 http://127.0.0.1:8000/proxy_url/kuayu  
        }
      }
    }
  }

步骤三:找到main.js文件,将axios.defaults.baseURL 设置为 /proxy_url

axios.defaults.baseURL = ‘/proxy_url'

步骤四:然后xxx.vue文件中的methods中的axios请求正常使用就可以了 此处的完整请求URL是
http://127.0.0.1:5000/testcase_orm(步骤四只是提供一个示例,具体的请求URL按照自己项目的URL去请求)

methods:{
    getCaseList: function(){
        console.log("xxxxxxxxx")
        console.log('查看接口调用是否成功')
        this.$axios.get('/testcase_orm').then((result)=>{
             console.log('查看接口调用是否成功,被调用则成功')
             console.log(result)
        })
    }
  }

解决方法解析:

跨域问题,可以让服务端去添加请求头字段信息以及允许跨域访问,服务端的跨域问题不在本文章描述,感兴趣可以去看博主的另一篇Django跨域问题解决的博文

vue跨域问题本次使用的是代理方案进行解决,通过本地服务器进行代理转发到目标服务器,跨域只针对浏览器,对于node服务发出的请求时不会出现跨域问题,从而解决浏览器跨域问题。

总结

到此这篇关于解决Vue2跨域报错AxiosError net::ERR_FAILED、 Network Error、ERR_NETWORK的文章就介绍到这了,更多相关Vue2跨域报错AxiosError net内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 解决Vue2跨域报错AxiosError net::ERR_FAILED、 Network Error、ERR_NETWORK

本文链接: https://www.lsjlt.com/news/172995.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作