How to solve the import error in JavaScript function

194 Views Asked by At

I have the following js code:

function getSlideAnswer(responseId, fpToken, coordinateX, traceData) {

    coordinateX = Math.floor(coordinateX);
    var encryptData = {
        "track": traceData,
        "x": coordinateX + "",
        "p": "0,0",
        "finger": fpToken
    };
    var t = CryptoJS.enc.Utf8.parse(responseId.substr(0, 16));
    return CryptoJS.AES.encrypt(JSON.stringify(encryptData), t, {
        iv: t,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    }).ciphertext.toString().toUpperCase();
}

However, I receive the following error:

execjs._exceptions.ProgramError: TypeError: 'JSON' is undefined

How to solve the error?

1

There are 1 best solutions below

0
Jan On

You can replace strigify by string concatenation in JS or Python.
Not sure about parameter types, but an example in JS:

function getSlideAnswer(responseId, fpToken, coordinateX, traceData) {

    coordinateX = Math.floor(coordinateX);
    var encryptData = '{"track":"' + traceData +
        '","x":"' + coordinateX +
        '","p":"0,0","finger":"' + fpToken +
    '"}';
    var t = CryptoJS.enc.Utf8.parse(responseId.substr(0, 16));
    return CryptoJS.AES.encrypt(encryptData, t, {
        iv: t,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    }).ciphertext.toString().toUpperCase();
}
Test()

function Test() {
    var traceData="foo", coordinateX = 123, fpToken = "bar";
    var encryptData = {
        "track": traceData,
        "x": coordinateX + "",
        "p": "0,0",
        "finger": fpToken
    };
    console.log(JSON.stringify(encryptData));
    var encryptDataStrigified = '{"track":"' + traceData +
        '","x":"' + coordinateX +
        '","p":"0,0","finger":"' + fpToken +
    '"}';
    console.log(encryptDataStrigified);
    console.log(JSON.stringify(encryptData) == encryptDataStrigified);
}