使用 Azure 无服务器函数 req.body 返回 HTML

Returning HTML with Azure Serverless Function req.body

我在 Azure Blob 存储中有一些 TIF 文件。我想通过电子表格中嵌入的 link 在浏览器中显示它们。最简单的方法应该是将文件代码作为请求参数,return 格式正确的 HTML,对吧?

所以现在我 return 和一些 HTML 一起 req.body 了。不幸的是,HTML 只是在浏览器中显示为字符串。如何使用最少的 rigamarole 将其呈现为 HTML?

这是我的代码:

if (req.query.blob) {
    let blob = req.query.blob;
    context.res = {
        // status: 200, /* Defaults to 200 */
        body: `<object width=200 height=200 
                data="<baseaddress>/${blob}.tif" type="image/tiff">
                <param name="src" value="<baseaddress>/${blob}.tif">
                <param name="negative" value="yes">
                </object>`
    };
}

您需要设置 headers 以将 内容类型 指定为 HTML 并且响应必须是 完全有效 HTML 页面(带有 <html> 标签和其余部分)。

示例

module.exports.hello = (event, context, callback) => {

  const html = `
    <!doctype html>
    <html>
      <head>
        <title>The Page Title</title>
      </head>
      <body>
        <h1>Hello</h1>
      </body>
    </html>`;

  const response = {    
    statusCode: 200, 
    headers: {
      'Content-Type': 'text/html'
    }, 
    body: html
  };

  callback(null, response);
};