uni-app unicloud使用集成响应返回HTML时仍然会调用下载

uni-app unicloud使用集成响应返回HTML时仍然会调用下载

示例代码:

return {
    mpserverlessComposedResponse: true,
    statusCode: 200,
    headers: {
        'content-type': 'text/html'
    },
    body: content
}

操作步骤:

  • 使用unicloud返回集成响应

预期结果:

  • 正常显示网页

实际结果:

  • 提示下载

bug描述:

如题,unicloud(阿里云)在正确使用集成响应返回HTML后,仍然提示下载,查看网页请求可能由于有 “x-download-options: noopen”这个响应头,试图在headers中覆盖也无果


更多关于uni-app unicloud使用集成响应返回HTML时仍然会调用下载的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

阿里云暂不支持云函数返回html直接展示

更多关于uni-app unicloud使用集成响应返回HTML时仍然会调用下载的实战教程也可以访问 https://www.itying.com/category-93-b0.html


跪了啊,好歹在文档写一下啊,不支持的话我整个unicloud的方案都白费了

回复 猫猫儿: 文档已补充说明

回复 猫猫儿: 腾讯云可以支持,并且是否下载是由响应头内的content-disposition决定的

根据你的描述,这个问题确实是由于阿里云的特殊响应头导致的。以下是解决方案:

  1. 尝试在headers中强制覆盖x-download-options:
return {
    mpserverlessComposedResponse: true,
    statusCode: 200,
    headers: {
        'content-type': 'text/html',
        'x-download-options': ''
    },
    body: content
}
  1. 如果上述方法无效,可以尝试改用base64编码返回:
return {
    mpserverlessComposedResponse: true,
    statusCode: 200,
    isBase64Encoded: true,
    headers: {
        'content-type': 'text/html'
    },
    body: Buffer.from(content).toString('base64')
}
回到顶部