我正在创建一个使用Blockstack的Web应用程序,我在Javascript方面遇到了一些问题,并了解如何在浏览器中使用Blockstack。
每当我尝试获取块堆栈用户的 ID 或用户名时:
var bsId = blockstack.loadUserData(profile).username;
console.log(bsId);
我收到此错误:
Uncaught ReferenceError: profile is not defined
但是当我直接在开发人员控制台中运行代码时,它工作正常并返回用户名。我很好奇我做错了什么,这也是我第一次处理 Blockstack。
这是一个使用Blockstack,Express和Heroku的应用程序。我已经查找了此错误,但没有找到太多内容,并阅读了Blockstack的文档。
var bsId = blockstack.loadUserData(profile).username;
console.log(bsId);
返回块堆栈用户名或所选信息。
我认为您的问题是您通过以下方式访问配置文件属性:
var bsId = blockstack.loadUserData(profile).username;
根据文档,loadUserData(( 返回一个 userData(( 对象,参数如 profile && username (等等(。相反,您应该使用:
var profile = blockstack.loadUserData().profile; //Get the profile
var username = blockstack.loadUserData().username; //Get the username directly
您还可以通过添加以下内容来检查是否正确设置了 CORS:
config.headers = {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET,PUT,POST,DELETE",
"Access-Control-Allow-Headers": "Content-Type"
}
这里有更多例子: https://github.com/blockstack/blockstack-browser/blob/master/docs/multi-player-storage.md
希望对您有所帮助!