Как использовать POST для установки результатов опроса SurveyJS? - PullRequest
0 голосов
/ 22 мая 2018

Можно ли использовать 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 голосов
/ 26 июня 2018

Вы можете проверить этот файл - 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.Вы можете получить свой postId со страницы службы MySurveys (https://surveyjs.io/Service/MySurveys/ обратите внимание, что страница MySurveys требует авторизации).

Это код TypeScript, но я уверен, что его легко можно преобразовать вJS.

...