我们遇到了 Googlebot 尝试访问 Ajax 函数上的 URL 并由于某些 URL 编码问题而失败的问题。首先,我们有点困惑,为什么 googlebot 试图在 JS 脚本上访问 JS 函数中的 URL。
JS代码:
ajaxFunction(siteid) {
$.get(location.protocol + '//' + location.hostname + '/ajax/?ajaxscript=detail&siteid='+ siteid, function() { ... });
}
上面的函数在我们网页中包含的 JS 脚本中,当点击链接/按钮时会调用该脚本。Googlebot 以某种方式试图直接访问上述函数生成的 URL,并由于“?”而出错。字符被 URL 编码,因此 siteid 值不会被传递。
google 尝试访问的示例 URL:
http://www.google.com/url?sa=t&rct=j&q=duo%2Bboots&source=web&cd=4&ved=0CDQQFjAD&url=http%3A%2F%2Fwww.MYSITE.com%2Fajax%2F%253Fajaxscript%3Ddetail%26siteid%3D1
您知道为什么 googlebot 尝试直接访问由 JS 函数生成的 URL,并且 googlebot 是否可以直接访问基于 ajax 的函数和 URL?基本上主要问题是?正在转换为 %2F,因此没有将所需的数据传递给我的脚本,这在我们的服务器错误日志中被记录为错误。