angular2 zone.js 进行自动 sock.js 调用

Posted

技术标签:

【中文标题】angular2 zone.js 进行自动 sock.js 调用【英文标题】:angular2 zone.js making automatic sock.js calls 【发布时间】:2016-04-29 20:22:33 【问题描述】:

嗨,我正在使用基于这个种子 https://github.com/angular/angular2-seed 的 Angular2 和 webpack

我不太确定使用 zone.js 的角度是什么,但是当我启动我的应用程序并查看控制台输出时,我每隔几秒就会收到此错误:

zone.js?e3a6:101 Mixed Content: The page at 'https://10.1.1.10/#/login' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://localhost:8081/sockjs-node/info?t=1461960793084'. This request has been blocked; the content must be served over HTTPS.

我理解为什么会发生错误,但不知道为什么会首先提出这个请求,尤其是每隔几秒钟。我的 web 应用程序正在运行,似乎并不担心这个错误,也许有人可以向我解释为什么 zone.js 会执行此请求,以及是否有办法禁用它。

【问题讨论】:

angular 使用 zone.js 来检测数据的变化,可以在这里看到更多youtube.com/watch?v=CUxD91DWkGM 【参考方案1】:

这是由 webpack-dev-server 的“自动刷新/热模块更换”功能实现的。当源代码发生变化时,它会注入一个用于刷新页面的脚本。

要禁用此功能,请将package.json 中的--inline 替换为--lazy 以:


  "scripts": 
     ...
    "server": "node node_modules/webpack-dev-server/bin/webpack-dev-server.js --lazy --colors --progress --display-error-details --display-cached --port 3000  --content-base src",
     ...
  

【讨论】:

以上是关于angular2 zone.js 进行自动 sock.js 调用的主要内容,如果未能解决你的问题,请参考以下文章

Angular ZoneJS 原理

Angular2 错误 - 是不是包含平台模块(BrowserModule)?

Angular篇—Angular1和Angular2的区别

“英雄之旅”见闻和小结----angular2系列(三)

zone.js - 暴力之美

在angular2中自动调整textarea