栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

跨域访问报错(基于springboot&&vue框架的前后端分离将出现的问题)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

跨域访问报错(基于springboot&&vue框架的前后端分离将出现的问题)

  出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port),三者中的任何一个不同都将产生跨域问题。

  问题特征—前端向后台发送请求发现报错:
Access to XMLHttpRequest at ‘http://localhost:8082/doLogin’ from origin ‘http://localhost:8080’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
   一般都是异步请求会有这个问题,比如:Ajax,XMLHttpRequest等…

解决方法:
  1在WebMvcConfig添加addCorsMappings方法

@Override
public void addCorsMappings(CorsRegistry registry) {

    //允许跨域访问资源定义
    registry.addMapping("/**")
            //(只允许本地的指定端口访问)允许所有
            .allowedOrigins("http://localhost:8080")
            // 允许发送凭证: 前端如果配置改属性为true之后,则必须同步配置
            .allowCredentials(true)
            // 允许所有方法
            .allowedMethods("*")

            .allowedHeaders("*");
}

  直接将允许访问的端口,资源地址等等进行设置(vue前端项目的端口为8080),简单高效。

  2直接采用SpringBoot的注解@CrossOrigin
  Controller层在需要跨域的类或者方法上加上该注解即可,比较复杂,一般采用第一种。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/332508.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号