如何使用POST设置SurveyJS调查的结果?

时间:2018-05-21 22:19:37

标签: surveyjs

是否可以使用POST来设置SurveyJS调查的结果?

我可以使用GET来获取调查结果,但我正在努力设置。

以下是我用来获取结果的代码:

urlToSurvey = "https://dxsurvey.com/api/MySurveys/getSurveyResults/surveyID?accessKey=myKey";

$.get(urlToSurvey, function(res) {
    console.log(res);
});

我想用SurveyJS来存储学生'开源插件(Adapt Learning)的进展,所以我想直接将进度数据发布到SurveyJS,因为我无法在插件中运行独立的html。

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

您可以检查此文件-https://github.com/surveyjs/surveyjs/blob/master/src/dxSurveyService.ts

以下是负责发送结果的代码:

  public sendResult(
    postId: string,
    result: JSON,
    onSendResult: (success: boolean, response: any) => void,
    clientId: string = null,
    isPartialCompleted: boolean = false
  ) {
    var xhr = new XMLHttpRequest();
    xhr.open("POST", dxSurveyService.serviceUrl + "/post/");
    xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    var data = { postId: postId, surveyResult: JSON.stringify(result) };
    if (clientId) data["clientId"] = clientId;
    if (isPartialCompleted) data["isPartialCompleted"] = true;
    var dataStringify: string = JSON.stringify(data);
    var self = this;
    xhr.onload = xhr.onerror = function() {
      if (!onSendResult) return;
      onSendResult(xhr.status == 200, xhr.response);
    };
    xhr.send(dataStringify);
  }

必需的参数是postId和result json。您可以从服务的MySurveys页面获取postId(https://surveyjs.io/Service/MySurveys/请注意,MySurveys页面需要授权)。

这是TypeScript代码,但我敢肯定,它可以轻松转换为JS。