Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解决JavaScript函数中的导入错误_Javascript_Python_Execjs - Fatal编程技术网

如何解决JavaScript函数中的导入错误

如何解决JavaScript函数中的导入错误,javascript,python,execjs,Javascript,Python,Execjs,我有以下js代码: function getSlideAnswer(responseId, fpToken, coordinateX, traceData) { coordinateX = Math.floor(coordinateX); var encryptData = { "track": traceData, "x": coordinateX + "", "p": "0,0", "finger": fpTo

我有以下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(JSON.stringify(encryptData), t, {
        iv: t,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    }).ciphertext.toString().toUpperCase();
}
但是,我收到以下错误:

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

如何解决此错误?

您可以用JS或Python中的字符串连接替换strigify。
不确定参数类型,但JS中有一个示例:

函数getSlideAnswer(responseId、fpToken、coordinateX、traceData){ 坐标=数学楼层(坐标); var encryptData='{“track”:“'+traceData+ “,”x“:”+坐标+ “,“p”:“0,0”,“finger”:“'+fpToken”+ '"}'; var t=CryptoJS.enc.Utf8.parse(responseId.substr(0,16)); 返回CryptoJS.AES.encrypt(encryptData,t{ 四:t,, 模式:CryptoJS.mode.CBC, 填充:CryptoJS.pad.Pkcs7 }).ciphertext.toString().toUpperCase(); } 测试() 功能测试(){ var traceData=“foo”,coordinateX=123,fpToken=“bar”; var加密数据={ “跟踪”:跟踪数据, “x”:坐标+“”, “p”:“0,0”, “手指”:fpToken }; log(JSON.stringify(encryptData)); var encryptDataStrigified='{“track”:“'+traceData+ “,”x“:”+坐标+ “,“p”:“0,0”,“finger”:“'+fpToken”+ '"}'; console.log(加密数据触发); console.log(JSON.stringify(encryptData)=encryptDataStrigified);
}您可以用JS或Python中的字符串连接来替换strigify。
不确定参数类型,但JS中有一个示例:

函数getSlideAnswer(responseId、fpToken、coordinateX、traceData){ 坐标=数学楼层(坐标); var encryptData='{“track”:“'+traceData+ “,”x“:”+坐标+ “,“p”:“0,0”,“finger”:“'+fpToken”+ '"}'; var t=CryptoJS.enc.Utf8.parse(responseId.substr(0,16)); 返回CryptoJS.AES.encrypt(encryptData,t{ 四:t,, 模式:CryptoJS.mode.CBC, 填充:CryptoJS.pad.Pkcs7 }).ciphertext.toString().toUpperCase(); } 测试() 功能测试(){ var traceData=“foo”,coordinateX=123,fpToken=“bar”; var加密数据={ “跟踪”:跟踪数据, “x”:坐标+“”, “p”:“0,0”, “手指”:fpToken }; log(JSON.stringify(encryptData)); var encryptDataStrigified='{“track”:“'+traceData+ “,”x“:”+坐标+ “,“p”:“0,0”,“finger”:“'+fpToken”+ '"}'; console.log(加密数据触发); console.log(JSON.stringify(encryptData)=encryptDataStrigified);
}我使用python并导入了
execjs
module.concurrence:/可能值得注意的是,该项目是EOL,没有得到维护:显然,它没有提供ES5中添加的
JSON
对象。项目指向作为可能的替代方案。旧浏览器?JSON对象是一个非常新的特性,一些稍老的人不知道它…@Tom-10岁此时,它是ES5的一部分(2009年12月)。:-)甚至IE8也有
JSON
。但是OP上面说他们没有使用浏览器,他们使用的是Python中的
execjs
模块。我使用Python并导入了
execjs
模块。巧合:/可能值得注意的是,项目是EOL,没有维护:显然,它没有提供ES5中添加的
JSON
对象。项目指向作为可能的替代方案。旧浏览器?JSON对象是一个非常新的特性,一些稍老的人不知道它…@Tom-10岁此时,它是ES5的一部分(2009年12月)。:-)甚至IE8也有
JSON
。但是OP上面说他们没有使用浏览器,而是使用Python中的
execjs
模块。