美文网首页
vue 跨域问题

vue 跨域问题

作者: 大潘24678 | 来源:发表于2020-07-16 12:05 被阅读0次

开发环境下与后端对接时报错如下


报错信息

Access to XMLHttpRequest at 'http://localhost:5000/plan' from origin 'http://localhost:8888' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

报错原因

查了下是跨域问题
网站开发中的同源策略导致 不同源的地址下的资源不能使用导致

我的开发环境中 vue项目的 地址 http://localhost:8888, 后端接口的地址 http://localhost:5000
所以同源策略导致 后端返回的资源前端不能使用

当然不同地址一般发生在开发环境中 生产环境中大部分情况 后端代码与前端代码是在一个地址下的

解决办法

跨域问题解决思路有两种

前端解决
> 我这里是vue项目 就直接按照vue的办法去解决 当然其他框架肯定早已有前辈们帮我们填坑了 只需动动你   的小手指在网上找找就行

vue cli版本4.x
大致分两步:

  1. vue项目根目录新建 名为vue.config.js 的js文件 如果已经有了就直接在里边配置
module.exports = {
    devServer: {
        /* 使用代理 */
        proxy: {
            '/api': {
                /* 目标代理服务器地址 这里是我自己的后端地址 */
                target: 'http://localhost:5000/',
                /* 是否允许跨域 */
                changeOrigin: true,
                // ws: true,  //代理websockets
                pathRewrite:{
                    '^/api':''//重写路径 比如'/api/aaa/ccc'重写为'/aaa/ccc'
                }
            },
        },
    },
}
  1. 找到你项目中的axios
    设置baseurl
axios.defaults.baseURL = '/api';

我网上找了很多方法都是之说了第一步 然后测试还是老样子
我这边加上第二步后正常了

当然后边还 测试了下只设置代理也是行得通的

  1. vue.config.js文件中
module.exports = {
    devServer: {
        /* 使用代理 */
        proxy: 'http://localhost:5000'
    },
}

2.axios设置

  axios.defaults.baseURL = '';
后端解决

根据异常信息提示 No 'Access-Control-Allow-Origin' header is present on the requested resource.
response header中没有 Access-Control-Allow-Origin字段 想要那就给你
后端返回数据添加

response.headers["Access-Control-Allow-Origin"] = '*'

但是这里测试的如果 vue中 axios.defaults.baseURL= 还是后端的地址的话是没有效果的 可以设置为空字符串或者其他字符串有效

以上。。。请笑纳 有问题欢迎留言讨论

相关文章

  • axios跨域和配置proxyTable

    使用vue-axios和vue-resource解决vue中调用网易云接口跨域的问题 vue.js学习之 跨域请求...

  • Vue2.x-实现跨域请求(fetch/axios/proxyt

    Vue2.x-实现跨域请求(fetch/axios/proxytable)跨域问题,修改proxyTable,然后...

  • vue简单接口封装 跨域问题处理

    vue接口封装: 第一步:解决跨域 接口请求,一般都会碰到跨域问题,在vue项目中,我们采用页面代理的方法解决跨域...

  • Vue学习笔记(一)

    跨域问题 vue前端跨域问题 1. 利用vue-cli框架与axios结合,访问服务器后端接口,axios不需要太...

  • Vue跨域请求

    在使用vue开发的时候经常要涉及到跨域的问题,其实在vue cli中是有我们设置跨域请求的文件的。 1、当跨域无法...

  • vue-cli脚手架项目中的跨域解决方案

    1、在使用vue开发的时候经常要涉及到跨域的问题,其实在vue cli中是有我们设置跨域请求的文件的。 2、当跨域...

  • 解决一例Vue跨域访问无效

    在使用vue开发的时候经常要涉及到跨域的问题,其实在vue cli中是有我们设置跨域请求的文件的。当跨域无法请求的...

  • uni-app及vue浏览器跨域问题解决

    以猫眼电影接口为例: 假设请求接口 遇到跨域问题 vue解决跨域 在项目根目录下新建vue.config.js文件...

  • ajax 请求

    Vue开发中解决跨域问题 Axios 配置请求拦截

  • Vue面试归纳

    1. Vue项目axios跨域 跨域问题出现,使用webpack-dev-server的proxy功能处理 1...

网友评论

      本文标题:vue 跨域问题

      本文链接:https://www.haomeiwen.com/subject/sjcphktx.html