小程序开放平台

文档中心
单实例/多实例调用
xhs.cloud.init
xhs.cloud.callContainer

xhs.cloud.callContainer

开发指南
>
云函数API(消费侧)
>
xhs.cloud.callContainer
>
更新时间:2025-12-19 16:06:46

发起一个云托管服务的调用请求。

语法

xhs.cloud.callContainer(options)

参数说明

参数
类型
默认值
必填
说明
optionsobject-请求配置
options 说明
参数
类型
默认值
必填
说明
pathstring-服务地址
initobject见init说明请求配置对象
successfunction-接口调用成功后的回调函数
failfunction-接口调用失败后的回调函数
completefunction-接口调用结束后的回调函数(调用成功、失败都会执行)
init 说明
参数
类型
默认值
必填
说明
methodstringPOST网络请求方法,支持 GET/POST/OPTIONS/PUT/DELETE/TRACE/PATCH
headerobject{"content-type": "application/json"}请求 Header
bodyobject/array/arraybuffer-请求的参数
注意 GET 方法的请求不能包含 body 信息
当 method 为 POST 且 body 为 json 格式时,其 CloudID 格式的字段值会被网关替换为解密后的数据
timeoutnumber120000超时时间,单位为毫秒

返回值

成功回调

参数为 Object 类型,属性如下:

属性名
类型
说明
statusCodenumber返回的 HTTP 状态码
headerobject返回的 HTTP Response Header
datastring/any返回的数据(小程序侧返回的是 string,需要 JSON.parse 解析)
errMsgstring"Cloud.callContainer:ok"
失败回调

参数为 Object 类型,属性如下:

属性名
类型
说明
errMsgstring"Cloud.callContainer:fail " + 详细错误信息
errNonumber错误码

代码示例

Promise 风格
javascript
const cloud = xhs.cloud;

// 先初始化云环境
xhs.cloud.init({ envId: 'your-env-id' })
  .then(() => {
    // 调用云托管服务
    return cloud.callContainer({
      path: '/example',
      init: {
        method: 'POST',
        header: {
          "content-type": "application/json",
        },
        body: {
          example: 'example',
        },
        timeout: 120000, // ms
      }
    });
  })
  .then(({ statusCode, header, data }) => {
    console.log('调用成功');
    console.log('状态码:', statusCode);
    console.log('响应头:', header);
    console.log('响应数据:', JSON.parse(data));
  })
  .catch((err) => {
    console.error('调用失败', err.errMsg);
    console.error('错误码:', err.errNo);
  });
回调风格
javascript
const cloud = xhs.cloud;

// 先初始化云环境
xhs.cloud.init({
  envId: 'your-env-id',
  success: () => {
    // 调用云托管服务
    cloud.callContainer({
      path: '/example',
      init: {
        method: 'POST',
        header: {
          "content-type": "application/json",
        },
        body: {
          example: 'example',
        },
        timeout: 120000, // ms
      },
      success: ({ statusCode, header, data }) => {
        console.log('调用成功');
        console.log('状态码:', statusCode);
        console.log('响应头:', header);
        console.log('响应数据:', JSON.parse(data));
      },
      fail: (err) => {
        console.error('调用失败', err.errMsg);
        console.error('错误码:', err.errNo);
      },
      complete: () => {
        console.log('调用完成');
      }
    });
  }
});

错误说明

错误信息
说明
调用失败请求路径错误或服务不可用
请求超时服务响应超时