发送声明的一部分让我感到难过。在第一组代码中,我设置了一些变量,然后我成功地使用它来发送语句。当我尝试为“扩展”执行此操作时,所有内容都 。 我为扩展的两个部分设置了变量,但是当我尝试在第二组代码中使用它时,我无法使其工作。我试图逃避报价和许多其他组合,但没有任何作用。控制台错误消息指出“错误请求”。如何修改底部代码集中的扩展区域以使其起作用。谢谢。
//this happens when the user clicks the 'Find your English level' link
$("#findYourEnglishLevel").click(function () {
window.open('https://learnenglish.britishcouncil.org/en/content', 'myWin', 'scrollbars=yes,resizable=yes,top=50,left=50,width=1280,height=920');
var name = localStorage.getItem("name");
var email = localStorage.getItem("email");
var myView = "Find your English Level";
var ext1 = "https://learnenglish.britishcouncil.org/en/content";
var ext2 = "Find your English Level";
sendStatement(myView, name, email, ext1, ext2);
});
function sendStatement(m, n, e, ext1, ext2) {
//var stmt = {"actor" : {"mbox" : "mailto:user@example.com"},
var stmt = {"actor": {
"mbox": ("mailto:" + e),
"name": n
},
"verb": {"id": "http://adlnet.gov/expapi/verbs/accessed",
"display": {"en-US": "accessed"}},
"object": {"id": "https://www.syniverse.com/businessenglish",
"definition": {
/*"extensions": {
"https://learnenglish.britishcouncil.org/en/content": "Find your English Level"
},*/
"extensions": {
ext1: ext2
},
"name": {
"en-US": m
},
"description": {
"en-US": "Business English"
}
},
}};
conf()
ADL.XAPIWrapper.sendStatement(stmt, function (resp, obj) {
ADL.XAPIWrapper.log("[" + obj.id + "]: " + resp.status + " - " + resp.statusText);
});
}
答案 0 :(得分:0)
您尝试在对象声明期间使用ext1
作为键的变量,这是您无法做到的。
第一个取决于你正在使用的javascript(浏览器或NodeJS),并且是一个更现代的实现。
"extensions": {
[ext1] : ext2
},
https://jsfiddle.net/ak9L40n7/
否则,在定义stmt
之后,您可以使用密钥的字符串以这种方式设置新的键值对
stmt[ext1] = ext2