You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用POST请求设置SurveyJS问卷结果?适配Adapt Learning插件需求

使用POST请求设置SurveyJS问卷结果

当然可以用POST请求提交SurveyJS问卷结果!结合你在Adapt Learning中集成的需求,以及你之前用jQuery获取结果的代码风格,我整理了具体的实现方案:

1. 核心POST请求代码

你之前用$.get拉取结果,对应的提交操作可以用$.post或者更灵活的$.ajax来实现,两种写法都给你列出来:

简洁版:用$.post快速提交

// 替换成你的实际SurveyID和accessKey
const surveyId = "your-survey-id";
const accessKey = "your-access-key";
const submitUrl = `https://dxsurvey.com/api/MySurveys/postSurveyResult/${surveyId}?accessKey=${accessKey}`;

// 构造要提交的进度/问卷数据,字段要和你的SurveyJS问卷配置对应
const progressData = {
  // 示例:假设你有一个记录进度的字段,以及其他问卷回答
  learningProgress: 75,
  lastCompletedModule: "Module 3",
  // 其他问卷问题的回答...
};

// 发送POST请求
$.post(submitUrl, progressData, function(res) {
  console.log("进度提交成功!返回数据:", res);
}).fail(function(err) {
  console.error("提交失败,错误信息:", err);
});

灵活版:用$.ajax自定义请求配置

如果需要设置请求头、调整数据格式,用$.ajax更方便:

const surveyId = "your-survey-id";
const accessKey = "your-access-key";
const submitUrl = `https://dxsurvey.com/api/MySurveys/postSurveyResult/${surveyId}`;

const progressData = {
  // 你的进度/结果数据
};

$.ajax({
  url: submitUrl,
  type: "POST",
  data: progressData,
  dataType: "json",
  // 可选:如果不想把accessKey放URL里,可以放请求头(看SurveyJS API要求)
  headers: {
    // "Authorization": `Bearer ${accessKey}`
  },
  success: function(res) {
    console.log("提交成功", res);
  },
  error: function(xhr, status, err) {
    console.error("提交出错:", status, err);
  }
});

2. 适配Adapt Learning的关键提醒

  • 数据格式要匹配:你提交的progressData里的字段名必须和SurveyJS问卷中的问题ID完全一致,不然数据会无法正确存储。比如你要记录学习进度,可以在SurveyJS里加一个数值型的问题,ID设为learningProgress,然后提交对应数值就行。
  • 避免前端暴露accessKey:如果Adapt Learning是公开可访问的,直接把accessKey写在前端代码里有泄露风险。最好的方式是通过Adapt Learning的后端服务中转请求,由后端携带accessKey去调用SurveyJS API,前端只需要把进度数据传给Adapt Learning后端。
  • 原生JS替代方案:如果Adapt Learning环境里没有jQuery,也可以用原生fetch API提交:
const surveyId = "your-survey-id";
const accessKey = "your-access-key";
const submitUrl = `https://dxsurvey.com/api/MySurveys/postSurveyResult/${surveyId}?accessKey=${accessKey}`;

const progressData = {
  // 你的数据
};

fetch(submitUrl, {
  method: "POST",
  body: JSON.stringify(progressData),
  headers: {
    "Content-Type": "application/json"
  }
})
.then(res => res.json())
.then(data => console.log("提交成功:", data))
.catch(err => console.error("提交失败:", err));

3. 验证提交结果

提交完之后,你可以用之前的GET请求代码去拉取结果,或者登录SurveyJS的后台查看数据,确认进度是否成功保存。

内容的提问来源于stack exchange,提问作者jasonC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:07:53