正文内容不正确 ngx.location.capture
incorrect body content ngx.location.capture
我想使用 lua+nginx
检测正确的 google 验证码数据 (API2)
我想使用ngx.location.capture
功能。
Nginx 配置(派对):
location = /recaptcha/api/siteverify {
resolver 8.8.8.8;
proxy_pass https://www.google.com;
}
部分lua代码:
local res = ngx.location.capture("/recaptcha/api/siteverify", {method = ngx.HTTP_POST,args ={ secret = "<MY_SECRET_KEY>", response = resp, remoteip = ip} })
在这种情况下,我收到不正确的 'binary' res.body
数据:
["�RPP*.MNN-.V�R()*M��
或在 nginx 日志中:
▒▒RPP*.MNN-.V▒RHK▒)N▒▒▒▒▒&秤▒ģ▒B@▒▒▒▒▒̼t▒̼▒▒ݢ▒▒▒▒T%▒d,W-▒)▒▒K
如果您使用相同的请求纯 curl ... -X POST https://www.google.com/recaptcha/api/siteverif
bash 命令,我会收到正确的数据:
{
"success": false
}
为什么会发生?
proxy_pass_request_headers off;
在 nginx 配置文件中解决问题。
location = /recaptcha/api/siteverify {
internal;
resolver 8.8.8.8;
proxy_pass https://www.google.com;
proxy_pass_request_headers off;
}
我们在第 3 方扩展的 Magento 1.7.0.2 中遇到了同样的问题。仅在特定服务器上获得此类数据
‹ «жRPP*.MNN-.VІR()*MХ %g$жд¤жҐ§Ж—ЂД•ЊНu
Ќt
CM¬L¬Ќў”А*3т‹KтsSAЄЉJіуSRs2уТхЉJ•ёjЊЗЂ¶^
更改 nginx 设置没有帮助。原来是gzipped answer。
我们已将 CURLOPT_ENCODING 更改为放气,问题已解决。
我想使用 lua+nginx
检测正确的 google 验证码数据 (API2)我想使用ngx.location.capture
功能。
Nginx 配置(派对):
location = /recaptcha/api/siteverify {
resolver 8.8.8.8;
proxy_pass https://www.google.com;
}
部分lua代码:
local res = ngx.location.capture("/recaptcha/api/siteverify", {method = ngx.HTTP_POST,args ={ secret = "<MY_SECRET_KEY>", response = resp, remoteip = ip} })
在这种情况下,我收到不正确的 'binary' res.body
数据:
["�RPP*.MNN-.V�R()*M��
或在 nginx 日志中:
▒▒RPP*.MNN-.V▒RHK▒)N▒▒▒▒▒&秤▒ģ▒B@▒▒▒▒▒̼t▒̼▒▒ݢ▒▒▒▒T%▒d,W-▒)▒▒K
如果您使用相同的请求纯 curl ... -X POST https://www.google.com/recaptcha/api/siteverif
bash 命令,我会收到正确的数据:
{
"success": false
}
为什么会发生?
proxy_pass_request_headers off;
在 nginx 配置文件中解决问题。
location = /recaptcha/api/siteverify {
internal;
resolver 8.8.8.8;
proxy_pass https://www.google.com;
proxy_pass_request_headers off;
}
我们在第 3 方扩展的 Magento 1.7.0.2 中遇到了同样的问题。仅在特定服务器上获得此类数据
‹ «жRPP*.MNN-.VІR()*MХ %g$жд¤жҐ§Ж—ЂД•ЊНu
Ќt
CM¬L¬Ќў”А*3т‹KтsSAЄЉJіуSRs2уТхЉJ•ёjЊЗЂ¶^
更改 nginx 设置没有帮助。原来是gzipped answer。 我们已将 CURLOPT_ENCODING 更改为放气,问题已解决。