当前位置: 首页 > news >正文

webman用nginx代理静态json文件的异步跨域

场景

.json文件置于webman的public目录下,使用了nginx做代理,直接访问文件是可以正常加载的,但跨域浏览器就无法加载文件。

nginx配置

文件是否存在于跟目录,存在则设置请求头,不存在则将请求交给webman处理即可。()

upstream webman {server 127.0.0.1:9030;keepalive 10240;
}server {listen 80;server_name  api.csdn.net;access_log /var/log/nginx/api.csdn.net.access.log;error_log /var/log/nginx/api.csdn.net.error.log;root /*/*/webman_1/public;location ^~ / {# 静态文件存在则处理 CORSif (-f $request_filename) {set $cors "1";  # 设置标记}# 处理 OPTIONS 请求if ($request_method = OPTIONS) {set $cors "${cors}o";  # 追加标记}# 静态文件存在且  OPTIONS 请求if ($cors = "1o") {add_header 'Access-Control-Allow-Origin' '*' always;add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;add_header 'Access-Control-Allow-Headers' 'Origin,Content-Type,Accept,Authorization' always;add_header 'Access-Control-Max-Age' 1728000;add_header 'Content-Type' 'text/plain charset=UTF-8';return 204;}# 判断是否是静态文件if (-f $request_filename) {# 添加跨域头(仅对静态文件)add_header 'Access-Control-Allow-Origin' '*' always;add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;add_header 'Access-Control-Allow-Headers' 'Origin,Content-Type,Accept,Authorization' always;break;  # 静态文件处理结束}#其他请求则交给webman处理proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $http_host;proxy_set_header X-Forwarded-Proto $scheme;proxy_http_version 1.1;proxy_set_header Connection "";if (!-f $request_filename){proxy_pass http://webman;}}# 拒绝访问所有以 .php 结尾的文件location ~ \.php$ {return 404;}# 拒绝访问所有以 . 开头的文件或目录location ~ /\. {return 404;}
}

相关文章:

  • 2025年数字孪生技术最新应用案例:跨领域实践与技术趋势
  • c++成员函数返回类对象引用和直接返回类对象的区别
  • java中的方法详解
  • Seata源码—5.全局事务的创建与返回处理二
  • Linux中的进程
  • Java-Collections类高效应用的全面指南
  • 如何安装双系统?即windows已经安装,如何安装ubuntu 22.04LTS
  • ​哈夫曼树(Huffman Tree)
  • 【Java ee初阶】HTTP(4)
  • 咖啡叶子病害检测数据集VOC+YOLO格式1468张4类别均为单叶子
  • 二进制与十进制互转的方法
  • Linux的静态库 共享库 进程 主函数的参数
  • Redis内存管理深度解析
  • Kotlin 作用域函数(let、run、with、apply、also)对比
  • 副业小程序YUERGS,从开发到变现
  • uniapp +vue +springboot多商家订餐系统
  • Harmony开发 List、Grid拖动自定义排序实现
  • Spring之Bean的初始化 Bean的生命周期 全站式解析
  • LeetCode Hot100刷题——轮转数组
  • 【springcloud学习(dalston.sr1)】Zuul路由访问映射规则配置及使用(含源代码)(十二)
  • 国际博物馆日|航海博物馆:穿梭于海洋神话与明代造船工艺间
  • 海外市场,押注中国无人驾驶龙头
  • 北京韩美林艺术馆党支部书记郭莹病逝,终年40岁
  • 上市公司重大资产重组新规九要点:引入私募“反向挂钩”,压缩审核流程
  • 刘小涛任江苏省委副书记
  • 普京确定俄乌谈判俄方代表团名单