如何解决JavaScript函数中的导入错误
我有以下js代码:如何解决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
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
模块。