ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

strict-origin-when-cross-origin nginx、tomcat、java、vue 跨域问题

2022-02-20 22:59:49  阅读:452  来源: 互联网

标签:origin vue java Auto springframework public import TODO method


如果你是小白,这套资料可以帮你成为大牛,如果你有丰富开发经验,这套资料可以帮你突破瓶颈
2022web全套视频教程前端架构 H5 vue node 小程序 视频+资料+代码+面试题.

配置跨域时,要考虑当前环境,只是代码层次,还是tomcat部署后的,再或者是nginx转发后的

  1. java

    import java.util.List;

    import org.springframework.context.annotation.Configuration;
    import org.springframework.format.FormatterRegistry;
    import org.springframework.http.converter.HttpMessageConverter;
    import org.springframework.validation.MessageCodesResolver;
    import org.springframework.validation.Validator;
    import org.springframework.web.method.support.HandlerMethodArgumentResolver;
    import org.springframework.web.method.support.HandlerMethodReturnValueHandler;
    import org.springframework.web.servlet.HandlerExceptionResolver;
    import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer;
    import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
    import org.springframework.web.servlet.config.annotation.CorsRegistry;
    import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
    import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

    @Configuration
    public class CommonInterceptor2 implements WebMvcConfigurer {

    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void addFormatters(FormatterRegistry registry) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void addCorsMappings(CorsRegistry registry) {
    	// TODO Auto-generated method stub
        registry.addMapping("/**")
        .allowedHeaders("*")
        .allowedMethods("POST","GET","PUT", "DELETE")
        .allowedOrigins("*");
    
    }
    
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void configureViewResolvers(ViewResolverRegistry registry) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
    	// TODO Auto-generated method stub
    
    }
    
    @Override
    public Validator getValidator() {
    	// TODO Auto-generated method stub
    	return null;
    }
    
    @Override
    public MessageCodesResolver getMessageCodesResolver() {
    	// TODO Auto-generated method stub
    	return null;
    }
    
  2. tomcat

    https://blog.csdn.net/weixin_44100514/article/details/109781103?spm=1001.2014.3001.5501

  3. vue

    proxy: { //配置跨域
    ‘/api’: {
    target: ‘http://IP:端口/’, //这里后台的地址模拟的
    changOrigin: true, //允许跨域
    pathRewrite: {
    /* 重写路径,当我们在浏览器中看到请求的地址为:http://localhost:8080/api/core/getData/userInfo 时
    实际上访问的地址是:http://121.121.67.254:8185/core/getData/userInfo,因为重写了 /api
    */
    ‘^/api’: ‘’
    }
    },
    }

  4. nginx

    location/ {
    proxy_passhttp://localhost:8081/;

              #proxy_set_headerHost $host:80;
    
              #proxy_set_headerX-Real-IP $remote_addr;
    
              #proxy_set_headerX-Forwarded-For $proxy_add_x_forwarded_for;
    
    
    
              add_headerAccess-Control-Allow-Origin $http_origin;
    
              add_headerAccess-Control-Allow-Methods *;
    
              add_headerAccess-Control-Allow-Headers $http_access_control_request_headers;
    
              add_headerAccess-Control-Max-Age 60000;
    
              add_headerAccess-Control-Allow-Credentials true;
    
              if($request_method = OPTIONS){
                     return200;
    
              }
    
    }
    

跨域问题,主要需要知道,当前的环境。

  1. 只有java层面上,java里加上跨域就可以
  2. 部署环境,tomcat上部署,那么需要tomcat配置跨域
  3. nginx + tomcat 那么不要同时配置跨域,会反复出现跨域了两次,你可以只在java层配置,tomcat不需要了,如果都配置,那么你还是跨域
  4. vue前端一般不需要解决跨域问题 ,开发环境层次上可以加一下

标签:origin,vue,java,Auto,springframework,public,import,TODO,method
来源: https://blog.csdn.net/qq_46416934/article/details/123037520

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有