卷曲以获取角度页面的内容

时间:2016-07-21 07:05:49

标签: javascript php angularjs node.js curl

我正在处理角度2应用程序,我们需要使用Google地球来运行此应用程序。不幸的是,谷歌地球使用了一个古老版本的Chrome,它对Angular 2一无所知。需要一种机制来运行服务器上的角度2应用程序,并将已经执行/引导的角度的初始html响应发送到此浏览器。

我正在考虑创建一个与Google地球浏览器通信的PHP服务器。基本上,Google地球将从此PHP服务器请求页面。此PHP服务器将发出CURL请求以从Angular2应用程序中获取相应的页面,并将HTML返回到Google Earth浏览器。

但是,有一个问题。 Curl确实从角度应用程序获得响应,但不等待角度应用程序完成引导,这意味着在ui-view被路由器内容填充之前,CURL呈现它的响应,在这种情况下我没有得到任何有用的响应HTML回来了。

我使用此链接检查CURL响应:http://onlinecurl.com/ 您可以选择任何角度站点并使用此链接查看它给出的响应。

有没有一种方法可以让curl等到angular bootstrap然后返回HTML?或者有没有其他方法可以解决这个问题?

我尝试过角度通用,但实现起来似乎太复杂了,我没时间来解决这个问题。

欢迎所有解决方案。提前致谢。

1 个答案:

答案 0 :(得分:0)

Angular在最大安全模式下打破Semantic WebTor,以及在渲染Web浏览器之外的任何其他兼容性。因此,我建议避免使用Angular,或者如果这不是一个选项,请创建一个更快,更小,更兼容的站点镜像,每页提供一个html.gz文件。使用Selenium IDE之类的东西,因为“Angular Universal”不支持window / document / jquery / etc和phantomjs& nightmare使用旧的错误代码。 2,361.07 KB example Angular页面可以缩减为9.7 KB平面文件。另一种选择是,如果您只想要数据,并且您使用或者可以找到具有正文HTML的XHR JSON文件,那就可以了。 curl -sL 'https://api.ontario.ca/api/drupal/page%2Fjobs-and-prosperity-fund-new-economy-stream?fields=body' > body.json用于上述示例