所以我在使函数中的VAR成为全局变量时遇到了麻烦,我尝试了以下资源:
What is the scope of variables in JavaScript?
我之前的问题被标记为重复,但是在查看了上面的链接后,这对我的问题没有帮助。
这是我先前的问题:
因此,我正在使用OpenTok创建在线会议工具,并且需要从其他服务器上的API中获取会话详细信息。我在另一台服务器上创建了一个php脚本,该脚本根据URL参数提供的会话ID捕获会话信息。我知道php脚本和大多数JavaScript都可以正常工作,因为当我从解析的JSON进行console.log数据输出时,它将打印正确的信息。但是,当我尝试将变量放入凭据区域时,出现以下错误:
ReferenceError: thesession is not defined
以下是用于从单独服务器上的PHP脚本获取JSON的代码:
var url_string = window.location.href;
var url = new URL(url_string);
var session = url.searchParams.get("s");
if (session == '') {
window.location.replace("http://www.google.com");
}
var getJSON = function(url,callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET',url,true);
xhr.responseType = 'json';
xhr.onload = function() {
var status = xhr.status;
if (status === 200) {
callback(null,xhr.response);
} else {
callback(status,xhr.response);
}
};
xhr.send();
};
getJSON('http://192.168.64.2/api/meeting/?uid=' + session,function(err,data) {
if (err !== null) {
console.log('Error');
}
var thesession = data.sessionID;
var thetoken = data.token;
console.log(thesession);
console.log(thetoken);
});
let otCore;
const options = {
credentials: {
apiKey: "####",sessionId: thesession,token: thetoken
},
这是控制台的屏幕截图:
最上面的控制台日志是“ thesession”,第二个控制台日志是“ thetoken”。我尝试查找该错误,但找不到与我的用法相同的错误。
期望的结果是我可以使用来自解析的JSON的数据并将结果用作凭证,例如data.sessionID,它与VAR会话绑定。
我知道这可能是一个范围问题,但是我不确定如何更改代码以使其按预期工作。
任何帮助都将不胜感激,这真的让我感到沮丧:)
如何更改范围以获取所需的功能?我已经审查了上一个问题给出的链接,但这对我的问题没有帮助。