我正在创建一个使用Blockstack的网络应用,但是我在使用Javascript时遇到了一些问题,并且了解如何在浏览器中使用Blockstack。
每当我尝试获取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);
返回Blockstack用户名或所选信息。
答案 0 :(得分:0)
我认为您的问题是您通过以下方式访问个人资料属性:
var bsId = blockstack.loadUserData(profile).username;
根据documentation,loadUserData()返回一个userData()对象,其参数类似于配置文件&&用户名(以及其他)。相反,您应该使用:
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
希望有帮助!