如何从2sxc活动应用的表单提交接口返回文本值?
解决2sxc FormsController返回值前端无法获取的问题
核心问题分析
直接返回纯文本值时,2sxc的前端sendForm方法期望符合其规范的JSON响应格式,纯文本返回无法被正确解析,导致回调里拿不到数据。
具体解决方案
1. 修改FormsController的返回格式
在FormsController中,不要直接返回纯文本,而是返回符合2sxc表单响应规范的JSON对象。示例C#代码如下:
// 假设textvalue是外部API返回的消息 return Json(new { Success = true, // 根据实际业务设置成功/失败状态 Message = textvalue, Data = new {} // 可附加其他需要传递给前端的数据 });
若需返回错误状态,将Success设为false即可。
2. 前端回调中读取返回值
调整前端代码,从返回的JSON对象中读取对应字段:
sendForm(formValues, submitButton, endpoint) .then((result: any) => { console.log(result.Message); // 此处可获取外部API返回的消息 // 根据状态做后续处理 if(result.Success) { // 执行成功逻辑,如显示成功提示 } else { // 执行错误逻辑,如显示错误提示 } });
关键说明
- 2sxc的
sendForm方法默认解析JSON格式响应,纯文本返回会被忽略或解析失败,必须返回标准JSON结构。 - 返回的JSON需包含
Success字段,这是前端判断请求状态的核心标识;Message用于传递提示信息,Data可承载额外返回数据。
内容的提问来源于stack exchange,提问作者MBouwman
相关产品推荐
相关产品推荐

