• Angular2发送HTTP请求SpringBoot后台跨域问题解决


    Angular通过http发送post请求至SpringBoot的Controller,由于同源策略的保护,遇到跨域问题:

    • 源(origin)就是协议(http)、域名(localhost)和端口号(8080),若地址里面的协议、域名和端口号均相同则属于同源

    解决方法:SpringBoot增加跨域请求支持

    一:全局配置(推荐)

    package com.example.example1.Default;
    
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.CorsRegistry;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
    /**
     * Created by BLIT on 2019/3/7.
     */
    @Configuration
    @EnableWebMvc
    public class CorsConfig implements WebMvcConfigurer {
    
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            //设置允许跨域的路径
            registry.addMapping("/**")
                    //设置允许跨域请求的域名
                    .allowedOrigins("*")  //也可以指定域名 .allowedOrigins("http://192.168.0.0:8080","http://192.168.0.1:8081")
                    //是否允许证书 不再默认开启
                    .allowCredentials(true)
                    //设置允许的方法
                    .allowedMethods("*")
                    //跨域允许时间
                    .maxAge(3600);
        }
    
    }

    二:局部配置

    添加注解:@CrossOrigin(origins = {"http://localhost:4200","null"})
    可以注解在单个方法上,也可以注解在整个controller上
  • 相关阅读:
    PrintWriter、PrintStream的苦头 缓冲区问题
    BufferedImage与byte[]互转
    求两个日期的间隔天数
    Timer和TimerTask详解
    Java连接Access数据库
    根据value字段对map进行排序
    java collections读书笔记(3)Arrays
    java collections读书笔记(4) stack
    运行时异常与一般异常有何异同?(转)
    java collections读书笔记(7) bitset
  • 原文地址:https://www.cnblogs.com/zxg-6/p/10488267.html
Copyright © 2020-2023  润新知