nginx /Java 办理跨域题目方案

打印 上一主题 下一主题

主题 535|帖子 535|积分 1605

  1. location / {
  2.         #if ($request_method = 'OPTIONS') {
  3.            # add_header 'Access-Control-Allow-Origin' '*';
  4.            # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
  5.             #add_header 'Access-Control-Allow-Headers' '*';
  6.            # add_header 'Access-Control-Max-Age' 1728000;
  7.            # add_header 'Content-Type' 'text/plain charset=UTF-8';
  8.            # add_header 'Content-Length' 0;
  9.            # return 204;
  10.         #}
  11.         #if ($request_method = 'POST') {
  12.           #  add_header 'Access-Control-Allow-Origin' '*';
  13.          #   add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
  14.           #  add_header 'Access-Control-Allow-Headers' '*';
  15.         #}
  16.        # if ($request_method = 'GET') {
  17.        #     add_header 'Access-Control-Allow-Origin' '*';
  18.        #     add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
  19.        #     add_header 'Access-Control-Allow-Headers' '*';
  20.        # }
  21.         proxy_pass http://localhost:8085;
  22.         proxy_set_header Host  $host:2385;
  23.         proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
  24.         proxy_set_header X-Real-IP  $remote_addr;
  25.         proxy_next_upstream http_502 http_504 error timeout invalid_header;
  26.         
  27.       }
  28.     }
复制代码
Java 办理方案
  1.    String method = request.getMethod();
  2.         if ("options".equalsIgnoreCase(method)) {
  3.             response.setHeader("Access-Control-Allow-Origin", "*");
  4.             response.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
  5.             response.setHeader("Access-Control-Allow-Headers", "*");
  6.             response.setHeader("Access-Control-Max-Age", "1728000");
  7.             response.setHeader("Content-Type", "text/plain charset=UTF-8");
  8.             response.setHeader("Content-Length", "0");
  9.             response.getOutputStream().close();
  10.             return true;
  11.         } else {
  12.             response.setHeader("Access-Control-Allow-Origin", "*");
  13.             response.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
  14.             response.setHeader("Access-Control-Allow-Headers", "*");
  15.             return false;
  16.         }
  17.     }
复制代码
在项目开发过程中,多个子系统之间的功能交互,前端出现跨域请求办理方案,前端VUE,后端Java(非springMVC架构)经过测试运行,上述两种方案都可以办理当前需求,当然也存在不同点
1.nginx代理的子系统都需要配置nginx.conf,需要运维支持,不够安全
2.Java方案有一个题目是跨域接口必须单独利用,不然会出现非跨域请求设置跨域接口,无法获取有用数据题目,现在还没有找到题目所在。所以跨域接口必须与非跨域接口单独分开,好处安全题目不消担心
以上是个人履历,不够深入,独家之言,难免偏颇,有错误之处,请留言更正

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

瑞星

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表