首页 > 解决方案 > 从 LimeSurvey 中的 API 获取 SessionKey 空白

问题描述

var request = require('request');

//******GLOBAL***************
var SESSIONKEY = "";
var options = {
  url: "https://xxxxxxxxxxxxxxxx/index.php/admin/remotecontrol",
  method: "POST",
  headers: {
    'user-agent': 'Apache-HttpClient/4.2.2 (java 1.5)',
    'host': 'xxxxxxxxxxxxxxxx',
    'path': '/index.php/admin/remotecontrol',
    'connection': 'keep-alive',
    'content-type': 'application/json'
  }
};

//*******AUTHENTIFICATION*******
options.body = JSON.stringify({
  method: 'get_session_key',
  params: ['myusername', 'mypassword'],
  id: 1
});

request(options, function(error, response, body) {
  if (!error && response.statusCode == 200) {
    body = JSON.parse(body);

    //*********KEEP THE KEY*********  
    if (SESSIONKEY === "") {
      console.log("NEW KEY -->" + body.result);
      SESSIONKEY = body.result;
      nextFonction();
    }
  } else console.log("ERROR -->" + body);
});

Limesurvey 版本 - 3.0.1

运行此代码后,我得到空白正文并显示错误

SyntaxError:JSON.parse () 处的 JSON 输入意外结束

这个错误是由于石灰调查的空白响应。我该如何解决这个错误?或者有没有其他方法可以从石灰调查中获取 SessionKey?请帮忙。

标签: limesurvey

解决方案


推荐阅读