【问题标题】:Safari ajax request Failed to load resource: The network connection was lostSafari ajax 请求加载资源失败:网络连接丢失
【发布时间】:2016-02-27 00:01:09
【问题描述】:

我在我的应用程序中收到一条消息“加载资源失败:网络连接丢失。”,该应用程序使用 ajax 请求从服务器获取内容。这个错误只在Safari中,其他浏览器都可以。

最近几个小时我一直在搜索,发现可能是由于 http 标头:

传输编码:分块
连接:保持活动
内容长度

我发现了类似的东西:https://github.com/woothemes/woocommerce/issues/7176 在底部被告知他们设置了

BrowserMatch "Safari" nokeepalive
在 .htaccess 中。

nginx服务器有类似的解决方案或设置吗?

谢谢

JF

【问题讨论】:

  • 已解决:更改了 nginx 服务器的设置。在配置中为 safari 添加了 keepalive_disabled。 nginx.org/en/docs/http/…
  • 在 IOS cordova/phonegap 应用程序中遇到了同样的问题。谢谢!
  • @JakubFormanek 我们知道问题的根本原因吗?我看到为 safari 设置 keepalive_disabled 解决了这个问题,但我们知道它为什么会失败吗?
  • 我遇到了同样的问题。 apache2有什么解决方案吗?
  • 使用 Puma 解决:当我发出多个 AJAX 请求时,Safari 遇到了这个问题,我通过从 Puma 配置中删除 queue_requests 解决了这个问题。该选项也会影响 keepalive。

标签: ajax .htaccess nginx safari


【解决方案1】:

它可能发生的原因之一是 Safari 处理某些 SSL 证书(主要是 LetsEncrypt)的方式。解决办法是放行:

ssl_session_cache shared:SSL:10m;

到你的 nginx 配置。

来源:https://community.letsencrypt.org/t/apple-safari-browsers-fail-to-connect/3731/3

【讨论】:

  • 天哪,我一直在寻找这个答案一个小时,为什么它的记录如此模糊?!
  • 这一切突然开始发生在我的一个应用服务器上。 LetsEncrypt 或我的 SSL 证书的更新会导致这种情况吗?
  • 其实我的问题不是 SSL,而是一些 nginx 文件归 root 用户所有
【解决方案2】:

使用 ajax 发布的表单也遇到了这个问题,并且当完成时执行了 window.location.reload(true)。 Safari 13.0.3 将在手动页面刷新后第一次工作(似乎一致)然后会得到“加载资源失败:网络连接丢失”。大约 3 次点击中的 2 次。

将客户端更改为:

  • 使用 ajax-get 代替 post(每次使用唯一的查询参数值)

  • 在完成时设置一个计时器,这样 window.location.reload(true) 就不会在 ajax 完成处理程序中完成

用户报告有效,但不确定其中一项更改或两者兼而有之。

希望这对某人有所帮助...

【讨论】:

    猜你喜欢
    • 2017-09-16
    • 2014-08-15
    • 2016-04-29
    • 1970-01-01
    • 2015-09-17
    • 2019-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多