这是一个简单易懂的问题,我将逐步解释清楚一切。另一个URL内的URL参数
我正在使用Google Feed API将RSS文件加载到我的JavaScript应用程序中。
如果需要,我有一个绕过Google缓存的设置,我通过在发送到Google Feed API的RSS文件链接末尾添加一个随机数来完成此操作。
例如,让我们说这是一个RSS链接:
http://example.com/feed.xml
绕过缓存,我附上一个随机数在最后一个参数:
http://example.com/feed.xml?0.12345
全Google Feed API的网址应该如下所示,其中“q”是上述链接:
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链接,它不再绕过缓存:
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”的参数网址。因此,“q”仅保留为“http://example.com/feed.xml”,因此缓存版本的加载不是唯一的。
有没有办法让数字参数成为“q”网址的一部分,而不是整个网址的一部分?
我会记住有关转义特殊字符的地步,这是有道理的。 – AncientRo
这有一个问题。在网址末尾追加“&0.1234”会导致“未找到”错误,并且不会返回RSS文件。如果我使用“?0.1234”,则在原始帖子中遇到问题,此时网址已经有“?”。 – AncientRo
你应该检查出最后一个正在使用的网址,除非谷歌对你的查询字符串做了一些奇怪的事情,这对我来说毫无意义。我非常怀疑URL的问题是诚实的。你能提供真实的网址吗? – MinusFour