我正在尝试编写一个html应用程序,它在我的机器中本地运行,并使用其数据存储api在dropbox中存储数据。该应用程序将首先使用Dropbox对用户进行身份验证,以便登录用户的帐户,以便存储数据。 (关于此的相关教程是https://www.dropbox.com/developers/datastore/tutorial/js)
然而,在我点击Dropbox页面中的“允许”按钮接受身份验证后,我无法返回到我的html并在我的chrome js控制台中收到此错误:
不允许加载本地资源:file:/// I:/my%20app/my%20app.html# =的access_token ... uKAmBGggAAA&bTSwy放大器; token_type =承载&安培; UID = 192028&安培;状态= oas_hjmjzi5m_0.8ejep9nuh99hpvi 授权CLIENT_ID = wy9s1uvip6qnswr&安培; REDIRECT_URI =文件%3A ///....................
在我的应用程序中进行身份验证的js代码是:
function save(){
var client = new Dropbox.Client({key: '9s1uswrxxxxxx'});
client.authenticate({interactive: false},
function (error) {
if (error) {
alert('Authentication error: ' + error);
}
});
if (client.isAuthenticated()) {
alert('the client is authenticated.');
}
client.authenticate();
var datastoreManager = client.getDatastoreManager();
datastoreManager.openDefaultDatastore(function (error, datastore) {
if (error) {
alert('Error opening default datastore: ' + error);
}
根据dropbox datastore api教程:“链接过程会将用户重定向到Dropbox网站,并要求他们授予您的应用程序访问其Dropbox的权限。当用户批准(或拒绝)时,他们将自动返回到同一页面“。
所以我想知道为什么在从Dropbox身份验证页面返回到我的HTML时会发生此错误。
答案 0 :(得分:1)
您的redirect_uri指向一个本地文件://您的浏览器不会将您重定向到的URL。有关更多信息,请参见此处:
https://forums.dropbox.com/topic.php?id=103530#post-558937
简而言之,您应该从服务器上提供应用程序。