2016-12-05 11 views
6

Reactアプリケーションでは、別のドメインから非同期に一部のデータを読み込みます。要求はのcorsモードで行われ、要求と応答はすべて正しく見え、自分のブラウザでテストすると正しく動作します。Googlebotと空のCORS応答

私たちは応答を監視し、分析のために私たちのアプリケーションに戻ってログに記録します。

多くの場合、正常にインデックスが作成されており、すべて正常にインデックスに登録されているように見えますが、データを正しく取得できないGooglebotの場合は、のみが失敗します。 。応答オブジェクトのデバッグstatusは200ですが、statusTextは空です。応答には本文がありません(したがって、.jsonまたは.textメソッドはありません)。ヘッダーはありません。この場合は、corsと正しく設定されています(opaqueではありません)。

CORSの私の理解から、これは送受信されるヘッダーの点ではすべて上にありますが、なぜGooglebotに間欠的な問題が多いのですか? GooglebotはHTTP 200の応答(成功、Promiseは拒否されません)があると言っていますが、HTTP 200が応答するすべてのものが欠けています。 Googlebotがヘッダーと本文を含む応答を返さないのはなぜですか(後述)。

通常のプリフライトリクエストは、この(丁目のデベロッパーツールから)のように見えます(*/\*内の余分なスラッシュはSO、それはコメントオープナーだと思考を停止するために追加)

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本体でPOSTとして送信されます)をフォローします。

(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 
+0

をコードブロックでコメントを開くことを意図しているので、*/*を考えていたので、コピーペーストの問題がありました。もう一度削除されました。 –

+0

何が問題なのですか? – guest271314

+0

GooglebotはHTTP 200応答があると主張していますが、本文とヘッダーはありません。他の場所でのテストは再現できず、問題はGooglebotでのみ発生します。 これをより明確にするために編集します。 –

答えて

2

失敗GooglebotがのIPアドレスが

グーグルことをふり、それは極悪な俳優になることがあり

を呼び出して確認してくださいここで説明するよう

は、IPアドレスを確認してください:

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

+0

はい、良い点です。エラーロギングにIPロギングを追加しましたので、そのことが分かります。 –

+0

これは合法的であるようです。 'crawl-66-249-79-185.googlebot.com'。 –

+0

Hmmm、これらのリクエストをどのようにデバッグしていますか? – stujo