nginx跨域问题,求解惑

在Nginx配置中,尝试解决图片跨域问题时,发现添加的Access-Control-Allow-Origin*头只有在if条件内才生效。问题出在if语句的影响范围,导致全局设置失效。将允许跨域的头部设置移至if条件内部解决了问题。
摘要由CSDN通过智能技术生成
    location /Cloud {
            add_header Access-Control-Allow-Origin *;
            add_header Access-Control-Allow-Headers X-Requested-With;
            add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

            alias  /Cloud;
             if ($request_filename ~* ^.*?.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx|jpg|png|mp4|mp3|js|css|xml|json|log|jepg)$){
                    
                     add_header Content-Disposition attachment;   #只下载不浏览
                     #add_header Content-Type text/plain;    #只浏览不下载  
            }
            autoindex_exact_size on;  # 显示出文件的确切大小,单位是bytes
            autoindex_localtime on;  # 显示的文件时间为文件的服务器时间
            charset utf-8,gbk;  # 避免中文乱码
        }

       如图,我想解决一个nginx访问图片的跨域问题,所以在if之外加了add_header Access-Control-Allow-Origin *; 想让所有访问的请求都可以加上这个请求头,但没有生效,返回的响应头没有这个标头。只有我将这个加到 if之内它才生效了,很是不理解,求大佬解惑!!!!

 location /Cloud {
            alias  /Cloud;
             if ($request_filename ~* ^.*?.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx|jpg|png|mp4|mp3|js|css|xml|json|log|jepg)$){
                     add_header Access-Control-Allow-Origin *;
                     add_header Access-Control-Allow-Headers X-Requested-With;
                     add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
                     add_header Content-Disposition attachment;   #只下载不浏览
                     #add_header Content-Type text/plain;    #只浏览不下载  
            }
            autoindex_exact_size on;  # 显示出文件的确切大小,单位是bytes
            autoindex_localtime on;  # 显示的文件时间为文件的服务器时间
            charset utf-8,gbk;  # 避免中文乱码
        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值