【问题标题】:Shopify proxy application/liquid will only download responseShopify 代理应用程序/液体只会下载响应
【发布时间】:2020-08-04 19:28:33
【问题描述】:

对于 shopify 应用程序代理,您应该将响应设置为 Content-Type: application/liquid,如 here 所述。

我正在使用 Laravel,但即使尝试一个基本的 php 示例,浏览器也只会下载响应,它不会显示它。

<?php

header('Content-Type: application/liquid');

echo "test";

即使这样也会下载内容为“test”的文件。

我尝试了 .htaccess 更改,但这些都不起作用。

谢谢。

【问题讨论】:

    标签: php laravel shopify liquid


    【解决方案1】:

    当您向端点发出请求时,代理会返回所需的内容(液体或 JSON 或普通 HTML)。由您决定在 DOM 中的何处显示它。由于您知道要在哪里显示响应,因此您可以使用 Javascript 精确定位要替换的 DOM 节点,然后替换它。

    代理模式对突然可见的响应没有任何魔力。如果响应中包含 Liquid 标签,Shopify 将尽最大努力填充这些标签,这意味着您从代理返回的 HTML 大字符串已准备好粘贴到 DOM 中。

    【讨论】:

    • “由您决定在 DOM 中的哪个位置显示它” - 当您返回应用程序/液体内容类型的响应时不是。 “Shopify 使用商店主题在商店上下文中呈现请求正文中的任何 Liquid 代码”,如下所述:shopify.dev/tutorials/… 将不涉及 javascript。
    • 我认为从底层问题来看更容易,这就是我包含一个基本代码示例的原因。当内容类型设置为 application/liquid 时,浏览器会下载它。如何补救?因为这确实是这里的问题,我相信。
    • OK.. 所以当 Liquid.美好的。因此,您希望看到测试,但您什么也看不到。控制台中的响应是什么?你确定你的标题设置正确吗?
    • 不是我什么都没看到,而是它下载了一个内容为“test”的文件。是的,标头已设置;否则,它不会下载文件。它不下载应用程序/json。只有在设置了自定义标题(例如“application/liquid”)时才会下载。
    猜你喜欢
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-06-06
    • 1970-01-01
    • 2016-02-14
    相关资源
    最近更新 更多