首页 > 系统相关 >nginx /Java 解决跨域问题方案

nginx /Java 解决跨域问题方案

时间:2024-06-05 11:46:21浏览次数:30  
标签:Control Java 跨域 header Access nginx add Allow response

 location / {
        #if ($request_method = 'OPTIONS') {
           # add_header 'Access-Control-Allow-Origin' '*';
           # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';

            #add_header 'Access-Control-Allow-Headers' '*';

           # add_header 'Access-Control-Max-Age' 1728000;
           # add_header 'Content-Type' 'text/plain charset=UTF-8';
           # add_header 'Content-Length' 0;
           # return 204;
        #}
        #if ($request_method = 'POST') {
          #  add_header 'Access-Control-Allow-Origin' '*';
         #   add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
          #  add_header 'Access-Control-Allow-Headers' '*';
        #}
       # if ($request_method = 'GET') {
       #     add_header 'Access-Control-Allow-Origin' '*';
       #     add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
       #     add_header 'Access-Control-Allow-Headers' '*';
       # }
        proxy_pass http://localhost:8085;
        proxy_set_header Host  $host:2385;
        proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP  $remote_addr;
        proxy_next_upstream http_502 http_504 error timeout invalid_header;
        
      }
    }

Java 解决方案

   String method = request.getMethod();
        if ("options".equalsIgnoreCase(method)) {
            response.setHeader("Access-Control-Allow-Origin", "*");
            response.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
            response.setHeader("Access-Control-Allow-Headers", "*");
            response.setHeader("Access-Control-Max-Age", "1728000");
            response.setHeader("Content-Type", "text/plain charset=UTF-8");
            response.setHeader("Content-Length", "0");
            response.getOutputStream().close();
            return true;
        } else {
            response.setHeader("Access-Control-Allow-Origin", "*");
            response.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
            response.setHeader("Access-Control-Allow-Headers", "*");
            return false;
        }
    }

在项目开发过程中,多个子系统之间的功能交互,前端出现跨域请求解决方案,前端VUE,后端Java(非springMVC架构)经过测试运行,上述两种方案都可以解决当前需求,当然也存在不同点

1.nginx代理的子系统都需要配置nginx.conf,需要运维支持,不够安全

2.Java方案有一个问题是跨域接口必须单独使用,不然会出现非跨域请求设置跨域接口,无法获取有效数据问题,目前还没有找到问题所在。所以跨域接口必须与非跨域接口单独分开,好处安全问题不用担心

以上是个人经历,不够深入,独家之言,难免偏颇,有错误之处,请留言更正

标签:Control,Java,跨域,header,Access,nginx,add,Allow,response
From: https://www.cnblogs.com/limumu/p/18232691

相关文章

  • JAVA SE
    JAVASE第一章-java的简介1、java是什么?一种编程语言高级编程语言:c/c++,java,php,javaScript,python...因为计算机只能认识二进数,不能识别高级语言,所以所有的高级语言都需要转变为机器语言高级编程语言分为二种:编译型语言(c/c++):需要先将源......
  • mvn 运行java 应用
    一般我们可能都是使用的idea工具,但是有时ide工具可能不那么方便,可能就需要直接使用基于mavenexec插件的,以下是一个使用的简单说明exec插件参考配置项目结构直接运行mvncompileexec:java-Dexec.mainClass="com.dalong.App"配置插件......
  • 03--nginx架构实战
    前言:这应该是nginx梳理的最后一章,写一些关于网站架构和网站上线的知识内容,主要是感觉到运维并不是单一方向的行业,这一章概念会有一些广泛,但是非常重要,都是这几年工作中遇到的情况,整理一下相关知识,遇到时可以直接按照目录寻找解决方案。1、动态网站简介当用户访问一个网站时,动......
  • Java代码优化指南
    Java代码优化指南代码优化是通过改进算法和数据结构,使代码运行得更快、更节省内存、更易于维护。在这方面,主要可以从算法优化、数据结构优化和代码层面的优化入手。本文将详细介绍这些优化方法,并通过具体示例说明如何在Java中进行代码优化。一、算法优化选择合适的算法......
  • 在CentOS 7.9上安装Nginx 1.24.0的步骤
    下载Nginxwgethttps://nginx.org/download/nginx-1.24.0.tar.gztar-xzfnginx-1.24.0.tar.gzcdnginx-1.24.0配置编译参数./configure--prefix=/usr/local/nginx编译和安装makesudomakeinstall创建Nginx服务文件sudovi/etc/systemd/system/nginx.service[U......
  • 计算机毕业设计项目推荐,28259校园信息交流平台的设计与实现(开题答辩+程序定制+全套文
    摘 要随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,校园信息交流平台被用户普遍使用,为方便用户能够可以随时进行校园信息交流平台的数据信息管理,特开发了基于校园信息交流......
  • 计算机毕业设计项目推荐,28326 校园商店管理系统的设计与实现(开题答辩+程序定制+全套文
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,校园商店当然也不能排除在外。校园商店是以实际运用为开发背景,运用软件工程原理和开发方法,采用Java技术构建的一个管理系统。整个开发过程首先对软件系统......
  • (免费领源码)Java/Mysql数据库+04770 基于Java的书籍借阅管理系统设计与实现,计算机毕业
    摘 要随着科学技术的告诉发展,我们已经步入数字化、网络化的时代。图书馆是学校的文献信息中心,是为全校教学和科学研究服务的学术性机构,是学校信息化的重要基地。图书馆的工作是学校和科学研究工作的重要组成部分,是全校师生学习和研究的重要场所。为了提高图书馆的工作效率......
  • (免费领源码)Java/Mysql数据库+04827基于PHP的高校二手物品交易系统的设计与实现,计算机
    本科生毕业论文(设计) 题   目PHP高校二手物品交易系统学   院       XXXXX     专业班级   XXXXX学生姓名       XXXX    指导教师            XXXX          撰写日期:2022年5月10日目 录摘......
  • java框架-日志-体系与级别-技巧
     体系一是提供了统一的日志门面API,即图中紫色部分,实现了中立的日志记录API。二是桥接功能,即图中蓝色部分,用来把各种日志框架的API(图中绿色部分)桥接到SLF4JAPI。这样一来,即便你的程序中使用了各种日志API记录日志,最终都可以桥接到SLF4J门面API。三是适配功能,即图......