0

谷歌浏览器开始阻止通过 HTTP 提供的下载。

此更新破坏了我的下载链接并在下面显示控制台错误。

混合内容:“https://www.sellmyiphonemiami.com/”上的站点是通过安全连接加载的,但“https://www.sellmyiphonemiami.com/order/print-shipping-label/731”上的文件通过不安全的连接重定向。此文件应通过 HTTPS 提供。此下载已被阻止。有关更多详细信息,请参阅 https://blog.chromium.org/2020/02/protecting-users-from-insecure.html

我的 pdf 下载是通过 HTTPS 提供的,但我仍然收到此错误。

网络控制台显示 2 条记录:第一条 -

请求 URL: http ://www.sellmyiphonemiami.com/order/print-shipping-label/732 请求方法:GET 状态代码:301 永久移动(来自磁盘缓存)远程地址:52.10.157.2:80 推荐人策略:严格-跨域起源

第二个 -

请求 URL: https ://www.sellmyiphonemiami.com/order/print-shipping-label/732 请求方法:GET 状态码:200 远程地址:52.43.218.108:443 推荐人策略:strict-origin-when-cross-origin

这是我的控制器:

$filename = sprintf('FedExShippingLable-%s.pdf', $o->getTrackingNumber());
    $fs = new Filesystem();
    $fs->dumpFile($filename, $o->getDocument());
    // Generate response
    $response = new Response();
    // Set headers
    $response->headers->set('Cache-Control', 'private');
    $response->headers->set('Content-type', mime_content_type($filename));
    $response->headers->set('Content-Disposition', 'attachment; filename="' . basename($filename) . '";');
    $response->headers->set('Content-length', filesize($filename));
    // Send headers before outputting anything
    $response->sendHeaders();
    $response->setContent(file_get_contents($filename));
    $fs->remove($filename);
    return $response;
4

1 回答 1

0

我发现的问题很简单,但我仍然不明白为什么。

我们使用了 Twig 扩展“url”,它创建了一个 http 请求“url”而不是 https。

将扩展名更改为“路径”解决了这个问题。

我不会将此标记为答案,因为希望有人可以解释为什么“url”扩展名返回此 URL“http://www.sellmyiphonemiami.com/order/print-shipping-label/732”以及为什么“路径”有效.

这有效:

 href="{{ path('label', {"id": order.id}) }}

这停止工作:

 href="{{ url('label', {"id": order.id}) }}
于 2020-12-16T02:08:02.140 回答