美文网首页
后台处理跨域问题

后台处理跨域问题

作者: Yluozi | 来源:发表于2021-09-01 09:48 被阅读0次

CORS,全称是"跨域资源共享"(Cross-origin resource sharing)
它允许浏览器向跨源服务器发出XMLHttpRequest请求,从而克服了Ajax只能同源使用的限制。
基本思想是:使用自定义的HTTP头部允许服务器和浏览器相互了解对方,从而决定请求或响应成功与否。

本人了解的解决思路有三种:

1.使用@crossorigin注解,在Controller层加入:Handler阶段的CORS

2.CorsFilter: 过滤器阶段的CORS

3.CorsInterceptor: 拦截器阶段的CORS

过滤器CorsFilter 来配置跨域。

package net.cnki.knmarket.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author ly
 */
@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        configurer.setUseSuffixPatternMatch(false);
    }
    //改用过滤器CorsFilter 来配置跨域,由于Filter的位置是在Interceptor之前的,所以跨域冲突问题得到解决

    @Bean
    public CorsFilter corsFilter() {

        CorsConfiguration config = new CorsConfiguration();
        // 设置允许跨域请求的域名
        config.addAllowedOrigin("*");
        //config.addAllowedOrigin("http://192.168.107.43,http://192.168.107.43:5555,http://192.168.107.43:8800");
        // 是否允许证书 不再默认开启
        // config.setAllowCredentials(true);
        // 设置允许的方法
        config.addAllowedMethod("*");
        // 允许任何头
        config.addAllowedHeader("*");
        config.addExposedHeader("token");
        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", config);
        return new CorsFilter(configSource);
    }

}

相关文章

  • 关于设置env等环境变量的思考

    1、如何处理跨域后台处理跨域前端处理跨域浏览器处理跨域 前端本地处理跨域:代理线上跨域的处理方式:Nginx反向代...

  • 前端踩过的坑

    关于前端 跨域问题 大概问题 1,前端无须处理,需要在后台配置 niginx的配置 处理跨域的域名 关于布局上 ...

  • 后台处理跨域问题

    CORS,全称是"跨域资源共享"(Cross-origin resource sharing)它允许浏览器向跨源服...

  • Web前后端跨域问题处理

    跨域问题有前台跨域(iframe间)和后台跨域。 前台跨域的解决方案可以采用跨域文档通讯(Cross domain...

  • 跨域情况下,返回url地址,并改名,下载文件

    1、后台的文件给流,不存在跨域问题。不现实2、给url 网址,后台解决跨域。百度图片就可以改名下载(不报跨域问题)...

  • 跨域问题的前后端解决方案

    跨域问题是开发过程中一个比较常见的问题,无论你是前台开发,还是后台开发,可能都处理过这个问题。本文主要是介绍跨域常...

  • Http浅析【2】——ajax跨域问题

    视频参考:ajax跨域完全讲解 本文精华版:【综合】ajax跨域问题 什么是跨域问题 简单来讲,当前台调用后台,如...

  • Ajax全接触(五) 处理跨域方式

    那么什么是跨域呢? 处理跨域方式-代理 我们在前端代码中将ajax访问后台url改成http://127.0.0....

  • VUE本地跨域解决方案

    我们前端使用接口时,时常遇到跨域问题,一般都是后台设置开放访问权限解决跨域,如果后台不配合或者为了安全问题...

  • web跨域解决方案

    围绕以下几点介绍: 什么是跨域? 常用的几种跨域处理方法? crossdomain.xml解决跨域问题 什么是跨域...

网友评论

      本文标题:后台处理跨域问题

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