baidu / amis

前端低代码框架,通过 JSON 配置就能生成各种页面。
https://baidu.github.io/amis/
Apache License 2.0
17.11k stars 2.48k forks source link

[JSSDK]尝试根据requestAdapter和adapter适配微信云开发的WebSDK,发现adapter无法被唤起. #4684

Closed liuzhijun closed 2 years ago

liuzhijun commented 2 years ago

描述问题:

SDK重写requestAdapter和adapter到腾讯云的WebSDK,adapter回调函数无法被唤起.目前直接跳过回调函数返回了原始数据.

截图或视频:

如何复现(请务必完整填写下面内容):

  1. 你是如何使用 amis 的? sdk

  2. amis 版本是什么?请先在最新 beta 版本测试问题是否存在 1.10.0

  3. 粘贴有问题的完整 amis schema 代码: url:"https://servicewechat.com/wxa-qbase/jsoperatewxdata",

    {"appid":"wx7ca040dad536890c","data":{"qbase_api_name":"tcbapi_slowcallfunction_v2","qbase_req":"{\"action\":1,\"call_id\":\"1655973419700_0.562469390012392\",\"cloudid_list\":[],\"data\":\"{\\\"username\\\":\\\"a\\\",\\\"password\\\":\\\"b\\\",\\\"cmd\\\":\\\"auth/login\\\"}\",\"function_name\":\"bizAdmin\",\"scene\":1}","qbase_options":{"appid":"wx7ca040dad536890c","env":"cloud1-2gzs63jj87dbec9c"},"qbase_meta":{"session_id":"1655973416935","sdk_version":"wx-web-sdk/1.1.0 (1602475903000)","filter_user_info":false},"cli_req_id":"1655973419700_0.562469390012392"}}
  4. 操作步骤 正常请求本地的PHP接口回调是可以的,难道是跨域的问题导致的?

liuzhijun commented 2 years ago

发现问题了:adapter是保存在requestAdapter里的,所以当返回的api结构体丢失了adapter的时候,回调自然就没有了... 参考代码如下: https://github.com/baidu/amis/blob/cce49ddcbcc12f019706c3ab14614be5749ec370/packages/amis-core/src/utils/api.ts#L450