尝试在浏览器中获取块堆栈用户数据



我正在创建一个使用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

希望对您有所帮助!

最新更新