【问题标题】:Post xhr blob request (300kb) failed with Firefox and App engine flexible environnement使用 Firefox 和 App 引擎灵活环境发布 xhr blob 请求 (300kb) 失败
【发布时间】:2020-04-28 04:44:24
【问题描述】:

当我在 SSL 上下文中使用负载平衡器测试我的网站时。不可能发布大的 GZIPed 内容 (300kB) 。请求冻结在萤火虫中。如果请求更轻,它可以工作。

它与 Chrome 或其他浏览器完美配合。

我没有在应用引擎实例上看到日志请求。在 nginx 中看不到日志。在请求期间看不到负载均衡器上的日志。当请求失败时,我会看到日志并且日志说需要 60 秒(超时)

我在这里看到了同样的问题:

Ajax post being aborted by firefox (not seen in Chrome or IE) (使用提琴手代理也可以)

尝试使用“async: false”不起作用。 尝试在 ajax 调用周围使用“setTimeout”不起作用。

请注意,当我在没有负载均衡器的情况下直接将应用程序用于实例时,打开端口,它可以完美地工作。

它在配置了 SSL 的 localhost 中完美运行。 (自签名证书)

请注意,当我在没有 SSL 和负载均衡器的情况下使用该应用时,它可以完美运行。

请求出现在萤火虫中,信息为空(最后一个请求),并保持这种状态,没有返回码。

以下,可能与负载均衡器配置有关。

Firefox AJAX POST w/ FormData Never Completes

但它是 Google App 引擎负载平衡器。我没有手,也不知道堆栈。

这里的等效问题:

ajax request not work in Firefox

另外,当我使用 Fiddler 代理拦截请求并解密它时,它可以工作!

【问题讨论】:

  • 我尝试了一个获取请求,我有:状态:502 statusText:“坏网关”类型:“基本”
  • 尝试不发送 GZIP blob 主体,而只是发送完整的 json 主体,请求大小从 300kB 到 1136kB 并且运行良好。所以问题是关于 blob 或 GZIP 或 SSL 下的两者与 Firefox

标签: google-app-engine firefox xmlhttprequest google-cloud-http-load-balancer


【解决方案1】:

我使用 formData 发送 GZIP 数据,它现在可以工作了。

var formData = new FormData();
var blob = new Blob([binary]);
formData.append("file", blob);
that.postDataBody = formData;

而不是

 that.postDataBody = new Blob([binary]);

【讨论】:

    猜你喜欢
    • 2013-02-02
    • 2019-05-11
    • 1970-01-01
    • 2012-09-11
    • 1970-01-01
    • 2021-08-22
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    相关资源
    最近更新 更多