下载文件时:报错Invalid mime type "application/octet-stream;

本文探讨了在control层调用下载接口时遇到的问题及解决方案。通常情况下,此调用无需返回值,若设置返回值则会导致错误。文章提供了一种有效的方法来规避这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出现的问题:
control层调用下载接口,因一般需要返回一个经过包装的Response返回给前端,目前看来是调用下载接口时是不需要返回值的,且有返回值的话
会报上面的错误
目前问题解决的方式:
将返回值去掉

#user nobody; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; # 代理方式 upstream backend { server http://backend:8080/; } http server server { listen 80; server_name 182.92.154.131; location / { root /usr/share/nginx/html/dist; index index.html index.htm; # 解决history路由模式刷新404 try_files $uri $uri/ /index.html; } # 新增API接口反向代理 (核心修改部分) location /api/ { # 捕获所有以/api开头的请求 proxy_pass http://182.92.154.131:8080/; # 关键斜杠/自动丢弃/api proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # location /backend { # /backend/test/api /test/api # # proxy_pass http://backend:8080/; # 加/代表会丢弃/backend # proxy_pass backend; # 加/代表会丢弃/backend # } # rewrite ^(.*)$ https://$host$1 permanent; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # HTTPS server # server { # listen 443 ssl; # server_name www.wushen3508.top; # ssl_certificate /usr/share/nginx/https/wushen3508.top.pem; # ssl_certificate_key /usr/share/nginx/https/wushen3508.top.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root /usr/share/nginx/html/dist; # index index.html index.htm; # # 解决history路由模式刷新404 # try_files $uri $uri/ /index.html; # } # location /backend { # /backend/test/api /test/api # proxy_pass http://backend:8080/; # 加/代表会丢弃/backend # # proxy_pass backend; # 加/代表会丢弃/backend # } # error_page 500 502 503 504 /50x.html; # location = /50x.html { # root html; # } # } }/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 10-listen-on-ipv6-by-default.sh: info: IPv6 listen already enabled /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh /docker-entrypoint.sh: Configuration complete; ready for start up 2025/03/24 10:22:06 [emerg] 1#1: invalid host in upstream “http://backend:8080/” in /etc/nginx/nginx.conf:22 nginx: [emerg] invalid host in upstream “http://backend:8080/” in /etc/nginx/nginx.conf:22给出修改后的完整配置
03-25
#user nobody; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; # 代理方式 upstream backend { server http://backend:8080/; } # http server server { listen 80; server_name 182.92.154.131; location / { root /usr/share/nginx/html/dist; index index.html index.htm; # 解决history路由模式刷新404 try_files $uri $uri/ /index.html; } # 新增API接口反向代理 (核心修改部分) location /api/ { # 捕获所有以/api开头的请求 proxy_pass http://182.92.154.131:8080/; # 关键斜杠/自动丢弃/api proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # location /backend { # /backend/test/api /test/api # # proxy_pass http://backend:8080/; # 加/代表会丢弃/backend # proxy_pass backend; # 加/代表会丢弃/backend # } # rewrite ^(.*)$ https://$host$1 permanent; error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } # HTTPS server # server { # listen 443 ssl; # server_name www.wushen3508.top; # ssl_certificate /usr/share/nginx/https/wushen3508.top.pem; # ssl_certificate_key /usr/share/nginx/https/wushen3508.top.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root /usr/share/nginx/html/dist; # index index.html index.htm; # # 解决history路由模式刷新404 # try_files $uri $uri/ /index.html; # } # location /backend { # /backend/test/api /test/api # proxy_pass http://backend:8080/; # 加/代表会丢弃/backend # # proxy_pass backend; # 加/代表会丢弃/backend # } # error_page 500 502 503 504 /50x.html; # location = /50x.html { # root html; # } # } }/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 10-listen-on-ipv6-by-default.sh: info: IPv6 listen already enabled /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh /docker-entrypoint.sh: Configuration complete; ready for start up 2025/03/24 10:22:06 [emerg] 1#1: invalid host in upstream “http://backend:8080/” in /etc/nginx/nginx.conf:22 nginx: [emerg] invalid host in upstream “http://backend:8080/” in /etc/nginx/nginx.conf:22
03-25
有错误,Build5.framework.js.gz:1 Uncaught SyntaxError: Invalid or unexpected token (at Build5.framework.js.gz:1:1)了解此错误AI Build5.loader.js:1 Unable to parse Build/Build5.framework.js.gz! This can happen if build compression was enabled but web server hosting the content was misconfigured to not serve the file with HTTP Response Header "Content-Encoding: gzip" present. Check browser Console and Devtools Network tab to debug. c @ Build5.loader.js:1 i.onload @ Build5.loader.js:1 script (匿名) @ Build5.loader.js:1 x @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 createUnityInstance @ Build5.loader.js:1 (匿名) @ (索引):27了解此错误AI Build5.loader.js:1 Failed to parse binary data file Build/Build5.data.gz (with "Content-Type: application/octet-stream, application/octet-stream"), because it is still gzip-compressed. It should have been uncompressed by the browser, but it was unable to do so since the web server provided the compressed content without specifying the HTTP Response Header "Content-Encoding: gzip" that would have informed the browser that decompression is needed. Please verify your web server hosting configuration to add the missing "Content-Encoding: gzip" HTTP Response Header. c @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 Promise.then x @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 createUnityInstance @ Build5.loader.js:1 (匿名) @ (索引):27了解此错误AI Build5.loader.js:1 Malformed data? Downloaded binary data file Build/Build5.data.gz (ArrayBuffer size: 77035852) and browser should have decompressed it, but it might have not. Dumping raw HTTP Response Headers if it might help debug: (匿名) @ Build5.loader.js:1 Promise.then x @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 createUnityInstance @ Build5.loader.js:1 (匿名) @ (索引):27了解此错误AI Build5.loader.js:1 accept-ranges: bytes (匿名) @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 Promise.then x @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 createUnityInstance @ Build5.loader.js:1 (匿名) @ (索引):27了解此错误AI Build5.loader.js:1 cache-control: max-age=315360000 (匿名) @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 Promise.then x @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 createUnityInstance @ Build5.loader.js:1 (匿名) @ (索引):27了解此错误AI Build5.loader.js:1 connection: keep-alive (匿名) @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 Promise.then x @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 createUnityInstance @ Build5.loader.js:1 (匿名) @ (索引):27了解此错误AI Build5.loader.js:1 content-length: 77035852 (匿名) @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 Promise.then x @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 createUnityInstance @ Build5.loader.js:1 (匿名) @ (索引):27了解此错误AI Build5.loader.js:1 content-type: application/octet-stream, application/octet-stream (匿名) @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 Promise.then x @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 createUnityInstance @ Build5.loader.js:1 (匿名) @ (索引):27了解此错误AI Build5.loader.js:1 date: Thu, 06 Mar 2025 02:16:53 GMT (匿名) @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 Promise.then x @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 createUnityInstance @ Build5.loader.js:1 (匿名) @ (索引):27了解此错误AI Build5.loader.js:1 etag: "67c8197a-497794c" (匿名) @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 Promise.then x @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 createUnityInstance @ Build5.loader.js:1 (匿名) @ (索引):27了解此错误AI Build5.loader.js:1 expires: Thu, 31 Dec 2037 23:55:55 GMT (匿名) @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 Promise.then x @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 createUnityInstance @ Build5.loader.js:1 (匿名) @ (索引):27了解此错误AI Build5.loader.js:1 last-modified: Wed, 05 Mar 2025 09:29:30 GMT (匿名) @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 Promise.then x @ Build5.loader.js:1 (匿名) @ Build5.loader.js:1 createUnityInstance @ Build5.loader.js:1 (匿名) @ (索引):27了解此错误AI Build5.loader.js:1 server: nginx/1.27.1
03-08
user root; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; # HTTP重定向到HTTPS server { listen 80; server_name 192.168.14.16; return 301 https://$host$request_uri; # 强制HTTPS重定向 } server { listen 443 ssl; # 启用SSL server_name 192.168.14.16; client_max_body_size 0; # SSL证书配置 ssl_certificate /etc/nginx/ssl/ssl.crt; # 证书路径 ssl_certificate_key /etc/nginx/ssl/ssl.key; # 私钥路径 ssl_protocols TLSv1.2 TLSv1.3; # 安全协议版本 ssl_ciphers HIGH:!aNULL:!MD5; # 加密套件 ssl_session_cache shared:SSL:10m; # SSL会话缓存 ssl_session_timeout 10m; # 会话超 # 前端静态资源 location / { root /home/gg/projects/gg-ui; try_files $uri $uri/ /index.html; index index.html index.htm; } # 后端API代理(保持HTTP协议) location /prod-api/ { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 告知后端使用HTTPS proxy_set_header X-Forwarded-Proto https; # 保持HTTP协议访问后端网关 proxy_pass http://gg-pz:3099/; #proxy_pass http://192.168.14.16:9000/; proxy_read_timeout 600s; } # 新增 WebSocket 代理 location /gg-pz/websocket/ { # 后端 WebSocket 地址 proxy_pass http://192.168.14.16:3099/gg-pz/websocket/; # 后端 WebSocket 地址 # WebSocket 必需的头信息 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # 透传客户端信息 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; # 超设置(WebSocket 需要长连接) proxy_read_timeout 86400s; # 24 小 proxy_send_timeout 86400s; proxy_connect_timeout 300s; } # 错误页面 error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # JS文件保护 location /static/js/ { if ($http_referer = "") { return 403; } alias /home/gg/projects/gg-ui/static/js/; try_files $uri =404; } } } 这是我的nginx配置,前端现在访问后端是通过ip调用接口,我想通过nginx代理,如何修改当前配置,帮我生成完整配置
最新发布
07-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值