1

次の URL を持つ AJAX アプリケーションがあるとします。 http://www.foo.com/bar#!a=1&b=2&c=3

GoogleBot からのクロール可能な AJAXリクエストはどのようになりますか?

私はこれを仮定しました:

A) http://www.foo.com/bar?_escaped_fragment_=a%3D1%26b%3D2%26c%3D3

しかし、実際には次のように見えます: (つまり、=s は URL エンコードされていません)

B) http://www.foo.com/bar?_escaped_fragment_=a=1%26b=2%26c=3

B)が実際に受け取るリクエストであるというのは正しいですか?

仕様を詳しく調べると、 B)が正しいように見えますが、多くの既定のクエリ文字列パーサーでは、この入力で必要な結果が得られない可能性があるため、それでも少し驚くべきことがわかります。

4

1 に答える 1

1

私はこれに自分で答えます。

上記の質問の正解は、A)でもB)でもないと思われます。「きれいな」AJAX URL がhttp://www.foo.com/bar#!a=1&b=2&c=3の場合、「醜い」_escaped_fragment_ バージョンはhttp://www.foo.com/bar?_escaped_fragment_=a=1%26b=2%26c=3です。つまり、=are はエスケープされませんが、are はエスケープ&されます。これは仕様でカバーされています。

于 2011-12-19T15:20:21.463 に答える