是否可以使用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。
感谢任何帮助。谢谢!
答案 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。