0

我正在创建一个使用 Blockstack 的 Web 应用程序,我在使用 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 用户名或选择的信息。

4

1 回答 1

0

我认为您的问题是您通过以下方式访问配置文件属性:

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

希望能帮助到你!

于 2019-11-01T12:35:52.513 回答