You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nginx POST子请求字符编码异常,获取Auth0令牌返回乱码求助

问题解决:Nginx NJS调用Auth0获取令牌时响应体乱码

问题原因

响应状态码200但出现乱码,本质是Auth0返回了gzip压缩的响应体,但Nginx的subrequest未自动解压,导致res.responseText读取到的是二进制压缩数据,显示为乱码字符。

修复方案

方案1:强制服务端返回未压缩数据

在Nginx的/auth0/generate-token location配置中,添加Accept-Encoding请求头,告知Auth0不要返回压缩内容:

location /auth0/generate-token {
    resolver 1.1.1.1 ipv6=off;
    set $empty "";
    proxy_method POST;
    proxy_set_header accept "application/json";
    proxy_set_header Content-Type "application/json";
    # 新增:强制服务端返回未压缩的明文数据
    proxy_set_header Accept-Encoding "identity";
    proxy_pass https://myauth0url;
}

方案2:配置Nginx自动解压响应

如果需要保留压缩传输,可启用Nginx的gunzip模块自动解压响应(需确保Nginx编译时包含ngx_http_gunzip_module):

location /auth0/generate-token {
    resolver 1.1.1.1 ipv6=off;
    set $empty "";
    proxy_method POST;
    proxy_set_header accept "application/json";
    proxy_set_header Content-Type "application/json";
    # 启用自动解压
    gunzip on;
    proxy_pass https://myauth0url;
}

额外检查点

  • 确认r.headersIn['auth-body']传递的请求体是合法JSON格式,避免因请求格式错误导致服务端返回异常内容。
  • 确保使用的NJS版本为0.5.0及以上,旧版本可能存在subrequest响应处理的兼容性问题。

内容的提问来源于stack exchange,提问作者Sadha Moodley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 23:47:11