Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 作为Google工具获取简单ajax站点不起作用_Javascript_Jquery_Html_Ajax_Google Webmaster Tools - Fatal编程技术网

Javascript 作为Google工具获取简单ajax站点不起作用

Javascript 作为Google工具获取简单ajax站点不起作用,javascript,jquery,html,ajax,google-webmaster-tools,Javascript,Jquery,Html,Ajax,Google Webmaster Tools,我的ajax网站的fetchas-Google工具有问题。我的网站有点旧,是用jquery编写的ajax网站。开发人员没有使用散列片段。但是他们已经定义了静态路由,ajax调用只在视图中使用(加载页面内容)。现在我想让这个特定的页面对谷歌友好,我已经实现了谷歌的要求 因为我的网站不是一个完整的单页应用程序,所以我直接选择了第三步。在我的路由文件中,我所做的是,如果我看到一个?\u转义\u片段\u=参数,我将返回一个自定义模板文件,该文件将包含服务器生成的内容。(所以它应该可以爬行,对吗?) 以下

我的ajax网站的fetchas-Google工具有问题。我的网站有点旧,是用jquery编写的ajax网站。开发人员没有使用散列片段。但是他们已经定义了静态路由,ajax调用只在视图中使用(加载页面内容)。现在我想让这个特定的页面对谷歌友好,我已经实现了谷歌的要求

因为我的网站不是一个完整的单页应用程序,所以我直接选择了第三步。在我的路由文件中,我所做的是,如果我看到一个
?\u转义\u片段\u=
参数,我将返回一个自定义模板文件,该文件将包含服务器生成的内容。(所以它应该可以爬行,对吗?)

以下是一个例子:

此页面使用ajax调用从服务器获取详细信息并更新视图。(我在这个页面中包含了
meta name=“fragment”content=“!”
meta标记),因此谷歌爬虫应该转到:

""

这个页面现在在服务器端生成内容,没有ajax调用

这是正确的设置吗?但是当我尝试在网站管理员工具中获取此页面时,它不会加载任何内容。抓取工具一直在说“挂起”,并以错误结束(显示遇到错误需要很长时间,但没有提到错误)。我通过手动访问每个url来确保这两个版本都正常工作。在我实现这个之前,Fetch工具实际上显示了没有内容的页面图像。所以现在我希望看到它的内容。但是不知道为什么要花很长时间+它给出了错误

谁能解释一下我做错了哪一部分?我关于
?\u转义的\u片段\u=
参数的想法正确吗


提前谢谢。

我很担心,因为这里没有人能回答这个问题。所以我必须自己去找。根据谷歌员工的回答,fetch工具不会解析meta标记。它只是呈现它所看到的页面

快照url将仅在以后爬网程序真正爬网时由爬网程序进行爬网。显然这是目前为止的正确答案。希望这将有助于其他人在未来

嗨,托德,很高兴看到更多的网站使用AJAX爬行方案 :-)!

看看你的博客主页,有一件事要记住 “作为Google机器人获取”功能不会解析它获取的内容。 因此,当您提交时,它会获取该URL。 获取URL后,它不会对其进行解析以检查是否存在错误 “fragment”元标记,它只是将其返回给您。然而,如果你去拿 ! , 然后它应该重写URL并 获取URL

当我们抓取和索引您的页面时,我们会注意到meta标记和act 因此。这只是作为谷歌机器人获取的功能,而不是 检查元标记,而只返回原始内容

我希望这能让它更清楚一点

约翰干杯


不确定是否只有我,但hashbang url对我也不起作用,在获取和呈现后,会在下表中为我更改为。感谢您找到这一点。在我的Angular应用程序中,我从wordpress.com api获取json。这个api有一个robot.txt,当我以Google的身份获取和渲染时,它不允许Google检查它。这没有意义,因为我使用prerender来提供预呈现的html,而不需要任何javascript或ajax调用。这就清楚了:-)这方面有什么变化吗?我仍然注意到同样的行为。这确实是他们应该解决的问题。请注意,自2015年10月以来,谷歌表示它可以索引ajax网站,因为他们的解析现在可以“像浏览器一样”查看您的网站。