首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Curl来获取一个角度页面的内容

Curl来获取一个角度页面的内容
EN

Stack Overflow用户
提问于 2016-07-21 15:05:49
回答 1查看 2.4K关注 0票数 1

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

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

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

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

有没有办法让curl等到angular bootstrap后再返回HTML?或者,有没有其他方法来解决这个问题?

我已经尝试过angular-universal,但它似乎太复杂,无法实现,而且我有很短的时间来解决这个问题。

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

EN

回答 1

Stack Overflow用户

发布于 2017-05-26 21:31:33

Angular打破了Semantic WebTor在最大安全模式下的兼容性,以及任何其他类型的兼容性,除非是一个渲染的web浏览器。因此,我建议避免使用Angular,或者如果不是这样的话,可以选择创建一个更快、更小、更兼容的站点镜像,为每个页面提供一个html.gz文件。使用像Selenium IDE这样的代码是因为"Angular Universal“不支持窗口/文档/jquery/等,而phantomjs & nightmare使用的是老的错误代码。可以将2,361.07KB的example Angular页缩减为9.7KB的平面文件。另一种选择是,如果您只需要数据,并且使用或可以找到包含主体HTML的XHR JSON文件,则直接获取该文件。以上示例的curl -sL 'https://api.ontario.ca/api/drupal/page%2Fjobs-and-prosperity-fund-new-economy-stream?fields=body' > body.json

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38497240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档