Скажите, что у меня есть приложение AJAX с этим URL: http://www.foo.com/bar#!a=1&b=2&c=3
http://www.foo.com/bar#!a=1&b=2&c=3
Как будет выглядеть запрос для сканирования AJAX от GoogleBot?
Я предположил это:
A) http://www.foo.com/bar?_escaped_fragment_=a%3D1%26b%3D2%26c%3D3
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
http://www.foo.com/bar?_escaped_fragment_=a=1%26b=2%26c=3
Правильно ли, что B) - это фактический запрос, который я получу?
При внимательном рассмотрении spec это выглядит как B) правильно, но я все еще нахожу это немного удивительным, так как многие парсеры консервированных строк запроса, вероятно, не дадут вам результат вы хотите с этим входом.
Я отвечу на это сам.
Правильный ответ, кажется, не будет ни A), ни B) в приведенном выше вопросе.Если «чистый» URL AJAX равен 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.Таким образом, = не избежал, а &.Это описано в spec .
&