Googlebot和空的CORS响应



我们有一个React应用程序,该应用程序从另一个域中加载一些数据。这些请求是在cors模式下使用isomorphic-fetch提出的,并且请求和响应看起来都很好,并且在使用我自己的浏览器测试时可以正常工作。

我们对响应和记录失败的监视回我们的分析应用程序。

虽然大多数情况下一切都很好(而且一切似乎都正确地索引了,并且在Google中表现良好),我们仍然看到很多失败, googlebot 正确获取数据。调试响应对象,我看到status是200,但是statusText是空的。响应没有身体(因此没有.json.text方法),也没有标题(不应该这样),并且该模式正确将其设置为cors(不是opaque,这可能解释了其他一些奇数)。<<<<<<<<<<<<<<<<<<<<<<<</p>

从我对CORS的理解中,根据发送和接收的标题,这一切都以上是董事会,那么为什么GoogleBot遇到如此多的间歇性问题?Googlebot说它具有HTTP 200响应(成功,未拒绝承诺),但它缺少HTTP 200响应的所有内容 - 它没有身体,并且没有露出标头。为什么GoogleBot无法用标头和身体返回响应(如下所述)?

正常的飞行前请求看起来像这样(来自Chome DevTools)(*/*中的额外斜线添加了以停止,因此以为这是一个打开的打开器)

Accept:*/*
Accept-Encoding:gzip, deflate, sdch, br
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Access-Control-Request-Headers:content-type, x-apikey
Access-Control-Request-Method:POST
Cache-Control:no-cache
Connection:keep-alive
DNT:1
Host:my.host.net
Origin:http://my.origin.net
Pragma:no-cache
Referer:http://my.origin.net/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.100 Safari/537.36

和前反应看起来像这样

Access-Control-Allow-Headers:content-type,x-apikey
Access-Control-Allow-Origin:*
Cache-Control:no-cache
Connection:keep-alive
Content-Length:0
Date:Mon, 05 Dec 2016 00:55:05 GMT
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/8.5
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET

随后随后是看起来像这样的实际请求(作为带有JSON主体的帖子发送)

accept:application/json
Accept-Encoding:gzip, deflate, br
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Cache-Control:no-cache
Connection:keep-alive
Content-Length:62
content-type:application/json
DNT:1
Host:someapi.net
Origin:http://my.origin.net
Pragma:no-cache
Referer:http://my.origin.net/
User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like  Gecko) Chrome/54.0.2840.100 Safari/537.36
x-apikey:someapikey

返回这样的响应(带有JSON主体)

Access-Control-Allow-Origin:*
Cache-Control:no-cache
Connection:keep-alive
Content-Length:33576
Content-Type:application/json; charset=utf-8
Date:Mon, 05 Dec 2016 00:55:05 GMT
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/8.5
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET

检查失败的Googlebot调用的IP地址

它可能是一个邪恶的演员,假装是Google

如下所述检查IP地址:

https://support.google.com/webmasters/answer/80553?hl= en

最新更新