在验证用户输入时,Invisible Google reCaptcha返回410

Ati*_*lia 11 invisible recaptcha invisible-recaptcha

我们正在使用隐形reCaptcha,偶尔,谷歌的Javascript代码向Google的服务器发出请求,接收响应状态410,而不是200.

我们无法控制它,因为Google的reCaptcha Javascript代码提出了请求.

如果已向用户呈现挑战,则以下是失败请求的示例:

GET https://www.google.com/recaptcha/api2/payload?c=03AOPBWq_EYB...
Run Code Online (Sandbox Code Playgroud)

响应是:

HTTP/1.1 410 Gone

<HTML>
<HEAD>
<TITLE>Gone</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Gone</H1>
<H2>Error 410</H2>
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)

它失败了大约10%的时间.以下是HTTP请求的"历史记录":

请求#1

POST https://www.google.com/recaptcha/api2/reload?k=6LcqZCEU...
v:r20170515161201
reason:fi
bcr:[1943341955,-150...
...

HTTP/1.1 200 OK
content-type: application/json
...

)]}'
["rresp","03AOPBWq_EYBOYkGkn-1S...",null,600,["pmeta",null,null,null,
null,[[["TileSelectionStreetSign",null,3,4,4,null,null,[]
]
,["dress",null,3,4,4,null,null,[]
]
]
,[]
]
]
,"multicaptcha",null,
["bgdata","Ly93d3cuWk5rOHFMZDlvNDZFa..."]
]
Run Code Online (Sandbox Code Playgroud)

上面的响应看起来像无效的JSON,但预计详见此处

请求#2

GET https://www.google.com/recaptcha/api2/payload?c=03AOPBWq_EYBOYk...
...

HTTP/1.1 200 OK
content-type: image/jpeg
content-length: 50528
...

<JPEG>
Run Code Online (Sandbox Code Playgroud)

请求#3

POST https://www.google.com/recaptcha/api2/replaceimage?k=6LcqZCEUAA...
v:r20170515161201
c:03AOPBWq_EYBOYkGkn-1SplFL...
ds:[[5,6,9,10,13,14]]

HTTP/1.1 200 OK
content-type: application/json
...

)]}'
["dresp","03AOPBWq-Iyck5GCpx86hk57XSxF-9b4GMaDeujP...",[]
,null,[]
]
Run Code Online (Sandbox Code Playgroud)

请求#4(失败的)

GET https://www.google.com/recaptcha/api2/payload?c=03AOPBWq_EYBOYk...
...

HTTP/1.1 410 Gone
content-type: text/html
...

<HTML>
<HEAD>
<TITLE>Gone</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Gone</H1>
<H2>Error 410</H2>
</BODY>
</HTML>
Run Code Online (Sandbox Code Playgroud)

A. *_*ian 1

这基本上是因为会话已过期。当您收到错误 410(即未成功,但您仍希望上传文件)时,您必须启动新会话。请查看以下链接了解详细信息: https://www.rfc-editor.org/rfc/rfc7231#section-6.5.9