【问题标题】:Can you use javascript to render an image stream?你可以使用 javascript 来渲染图像流吗?
【发布时间】:2009-03-27 03:03:48
【问题描述】:

情况是您必须使用图像 API,并且您必须发出 POST 请求以获取要在网页其余部分显示的图像流。

我可以使用 jQuery 在页面加载时向该服务发出 ajax 请求,但我只是得到一个二进制流返回。无论如何,JavaScript 是否可以采用该二进制字符串并显示标题中的内容类型?

【问题讨论】:

    标签: javascript jquery image stream


    【解决方案1】:

    我相信您正在寻找的是 Data URI Scheme - 它允许您格式化一个非常长的 URI,该 URI 本身指定所需的二进制数据。

    【讨论】:

    • 如果结果流要显示在“页面的其余部分”中,我担心它会太大而无法放入 data:URI...
    • 我见过这个,但我不知道如何将二进制转换为base64。你知道有什么好的博客文章吗?这是否适用于 IE6 甚至 IE7?
    【解决方案2】:

    我相信您需要安排在 HTTP GET 操作引用 URL 时传递流 - 然后让 JavaScript 将图像的 src 属性设置为该 URL。我已经看到使用 ASP.NET 完成此操作,其中使用 .ashx 处理程序来流式传输图像。然后引用http://site.com/images/imagehandler.ashx?parameters

    【讨论】:

    • 我无法控制流的传递方式。我无法安排使用 GetOperation 完成此操作。除非,也许我可以编写一个几乎可以通过的代理......
    • 这样的代理可以正常工作。只需在异步处理程序中使用 WebRequest。
    【解决方案3】:

    您不能将图像的 src 属性设置为您当前用于 ajax 通信的 url 吗?还是必须先从 ajax 调用中去除其他信息?

    【讨论】:

    • img 标签使用 GET 请求而不是 POST 请求。所以我不认为 img 标签的 src 属性会起作用。
    【解决方案4】:

    以 iframe 为目标进行表单发布请求。这是唯一的方法。

    【讨论】:

    • 是的,我已经使用这种方法实现了它。这是一个草率的黑客,但它确实有点工作。我会给你+1,但这并不能回答问题 $)
    【解决方案5】:

    只需使用 javascript 创建一个 img 元素,其 url 将图像作为 src 返回:

    // jquery
    $(#some-id).append('<img src="/get-image/?foo=bar"/>');
    

    【讨论】:

    • img 标签使用 GET 请求而不是 POST 请求。我希望这很容易。
    猜你喜欢
    • 2015-03-30
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-27
    • 1970-01-01
    • 2019-11-21
    • 2018-05-12
    相关资源
    最近更新 更多