springboot+vue跨域请求使用方法

这里写目录标题

  • 一、所谓跨域:
  • 二、不做任何处理
  • 三、解决跨域请求
    • 案例 一
    • 案例 二

一、所谓跨域:

在前后端分离的项目中,前台一个服务,后台一个服务。
前台的一个Axios请求打进来,要访问后台Tomcat服务器Restful接口
浏览器出于安全的考虑,使用 XMLHttpRequest对象发起 HTTP请求时必须遵守同源策略
在默认的情况下跨域是被禁止。
IP不同或者端口号不同就是跨域

二、不做任何处理

前后端交互的时候 跨域问题
已拦截跨源请求:同源策略禁止读取位于 http://localhost:8080/的远程资源。(原因:CORS
12打开后会发现控制台已经报错 Access-Control-Allow-Origin
在这里插入图片描述
也就是说跨域的本质是靠Http的Header头中的Access-Control-Allow-Origin来实现跨域的

三、解决跨域请求

这两个用哪个都可以

案例 一

package com.aaa.common;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

// 案例 一  跨域请求

@Configuration
public class CorsConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
    // 添加映射路径,“/”表示所有的路径都会被映射到该配置下。
        registry.addMapping("/**")  
                //是否发送Cookie
                .allowCredentials(true)
                //放行哪些原始域
                .allowedOriginPatterns("*")
                // 允许的请求方法,包括GET、POST、PUT和DELETE。
                .allowedMethods(new String[]{"GET", "POST", "PUT", "DELETE"})
                // 允许的请求头信息,即任何请求头都允许。
                .allowedHeaders("*")
                // 允许的响应头信息,即任何响应头都允许。
                .exposedHeaders("*");
    }
}

案例 二

package com.aaa.common;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

// 案例 一  跨域请求

@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Configuration
public class CorsConfig {

    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**")
                        .allowedOriginPatterns("*") // 修改为您允许的请求源
                        .allowCredentials(true)
                        .allowedMethods("*")
                        .allowedHeaders("*");
            }
        };
    }
}

你可能感兴趣的:(java,spring,boot,vue.js,后端)