【问题标题】:making http2 ajax call from angular/javascript application从 Angular/javascript 应用程序进行 http2 ajax 调用
【发布时间】:2016-10-13 18:58:20
【问题描述】:

我正在尝试对我的服务进行 http2 实现。我将 Jetty 9 与 ALPN jar 一起使用,并根据文档编写了代码。服务器启动了,我可以从 chrome 版本 51 访问 url http://localhost:8443/myurl。我正在使用 chrome 扩展 HTTP2/SPDY 指示器来查看 HTTP2 请求,它表明请求是 http2。当我尝试通过 angularjs 使用 Ajax 调用服务时,我看不到进行 HTTP2 调用的扩展报告。

无法检测Ajax调用是扩展的问题吗?或者我是否需要手动设置任何 HTTP2 特定标头才能激活 http2 调用。

任何帮助表示赞赏。

提前致谢。

【问题讨论】:

    标签: javascript ajax jetty http2


    【解决方案1】:

    Chrome HTTP/2 Indicator 扩展报告是否已使用 HTTP/2 下载顶级文档。

    该扩展不报告 XHR 调用。

    如果您在 Chrome 浏览器中浏览 chrome://net-internals/#http2,您将看到有效的 HTTP/2 连接,单击您的域的连接将提供更多信息,包括 XHR 调用。

    或者,您可以通过将org.eclipse.jetty.http2 类别启用到 DEBUG 来启用 HTTP/2 的服务器端 DEBUG 日志记录,您将看到 XHR 调用到达服务器。

    您不需要做任何特别的事情或在您的 XHR 调用(或 Angular 为您创建的那些)上添加任何 HTTP/2 标头:浏览器知道它是否可以使用 HTTP/2,如果可以的话它会使用它。

    【讨论】:

    • 感谢您的支持。我已经尝试过来自 Chrome localhost:8443/myurl 的 Angular js 应用程序,Url 在 http2 支持下运行良好。我已经为 ios 创建了 cordova 项目并使用 ios 版本 9.3 安装在 ipad 上,我在码头服务器端遇到异常。原因是:java.lang.IllegalStateException: null at org.eclipse.jetty.alpn.server.ALPNServerConnection .select(ALPNServerConnection.java:87) ~[jetty-alpn-server-9.3.8.v20160314.jar!/:9.3.8.v20160314] 在 sun.security.ssl.ServerHandshaker.clientHello(ServerHandshaker.java:805) ~[na:1.8.0_91]
    • 很难说出你在做什么......你可能有错误的服务器配置,或者你使用的客户端没有提供足够强大的 TLS 密码,如 HTTP/2 所要求的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    相关资源
    最近更新 更多