Это простой для понимания вопрос, я объясню шаг за шагом, чтобы все было ясно.Параметр URL-адреса в другом URL-адресе
Я использую API фида Google для загрузки файла RSS в мое приложение JavaScript.
У меня есть настройка обхода кеша Google, если это необходимо, и я делаю это, добавляя случайное число в конце ссылки на файл RSS, которую я отправляю в API фида Google.
Например, предположим, что это ссылка на RSS:
http://example.com/feed.xml
Чтобы обойти кэш, я прилагаю случайное число в конце в качестве параметра:
http://example.com/feed.xml?0.12345
в целом URL для фидов API Google будет выглядеть следующим образом, где «д» является выше ссылка:
https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=5&q=http://example.com/feed.xml?0.12345
Это обходит кэш и работает хорошо в большинстве случаев, но есть проблема, когда RSS-ссылка, которую я хочу использовать, уже имеет параметры. Например, так:
http://example.com/feed?type=rss
прилагая число в конце, как и раньше будет давать ошибку и RSS-файл не будет возвращен:
http://example.com/feed?type=rss?0.12345 // ERROR
Я попытался с помощью «&» приложить случайное число, так:
http://example.com/feed?type=rss&0.12345
Это больше не дает сообщение об ошибке и файл RSS вернётся правильно. Но если я использую выше в поток API URL Google, он больше не обходит кэш:
https://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=5&q=http://example.com/feed.xml&0.1234
Это потому, что «0,1234» считается параметр целого URL, а не параметр «Q» URL-адрес. Поэтому «q» остается только «http://example.com/feed.xml», он не уникален, поэтому загружается кешированная версия.
Есть ли способ сделать параметр числа частью части «q», а не частью всего URL-адреса?
Я помню пункт о возможности избежать специальных символов, это имеет смысл. – AncientRo
Существует проблема с этим. Добавление «& 0.1234» в конце URL-адреса дает ошибку «не найден», и файл RSS не возвращается. Если я использую «0.1234», я сталкиваюсь с проблемой в исходном сообщении, когда URL уже имеет «?». – AncientRo
Вы должны проверить последний используемый URL, если только Google не делает что-то странное с вашей строкой запроса, которая не имеет для меня никакого смысла. Я очень сомневаюсь, что проблема заключается в том, что URL-адрес будет честным. Не могли бы вы предоставить реальный URL? – MinusFour