0
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/dropbox.js/0.9.0/dropbox.min.js"></script>

您好我正在使用上述文件来访问保管箱功能。它包含所有 Dropbox 功能。我将这个包含到我的应用程序中,并使用以下代码使用 writefile 函数将文件上传到保管箱。
这在 chrome 和 Mozilla 浏览器中运行良好,但在 IE 中出现错误。
错误是:“Microsoft JScript 运行时错误:访问被拒绝”。
请任何人帮助我如何解决 IE 错误并告诉我此错误仅针对 IE 浏览器的原因?

 var UploadToDropbox = new Dropbox.Client({ key: consumerKey, secret: consumerSecret, token: accessToken, tokenSecret: accessTokenSecret, dropbox: true });
            UploadToDropbox.authenticate(function (error, UploadToDropbox) {
                if (error) {
                    alert('Something wrong here.');
                }
                else {
                    UploadToDropbox.writeFile("HelloWorld.txt", "Hello, world!\n", function (error, stat) {
                        if (error) {
                            return showError(error);  // Something went wrong.
                        }
                        alert("File saved to your dropbox successfully. ");
                    });

                }
            });

嗨,谢谢您回复我的问题,我尝试过这样但仍然出现同样的错误。

好的,现在我应该怎么做才能解决这个错误。

我也试过这个

<script type="text/javascript">
        // Hack to make dropbox.js works in IE8, IE9.
        if (!window.btoa) window.btoa = base64.encode; 
        if (!window.atob) window.atob = base64.decode;
    </script>

但同样的错误。

4

2 回答 2

1

打开IE->工具-->Internet选项

在安全选项卡->选择区域为 Internet-->单击自定义级别按钮--->在杂项下的跨域访问数据源中选中“启用”。

似乎 IE 不能很好地处理触发 DOM 控件的 javascript 事件。因此,如果存在此类事件操作,请尝试删除它们。

通常意味着您正在尝试更新当前安全设置下不允许的属性或访问内容。

有时,它也会由于使用不推荐使用的方法而发生。

于 2013-02-07T11:05:28.110 回答
0

你的问题中的黑客是没有必要的。dropbox.js 打包了它自己的atob/实现btoa,它在 IE <= 9 上使用。您可以通过访问IE 开发人员工具控制台中的Dropbox.Util.atob和进行尝试。Dropbox.Util.atob

base64 代码:https ://github.com/dropbox/dropbox-js/blob/master/src/base64.coffee

首先,请运行 checkbox.js 示例代码来检查您的 IE 设置。如果示例有效(您可以登录、添加任务、将它们标记为已完成并删除它们),那么您的 IE 设置正常,问题出在其他地方。

checkbox.js:https ://dl-web.dropbox.com/spa/pjlfdak1tmznswp/checkbox.js/public/index.html

其次,确保您使用https://. Dropbox API 服务器使用 https,而 IE <= 9 不允许从 http 页面到 https 服务器的跨域请求。

第三,您不应该在authorize调用中需要 token 和 tokenSecret 参数。

如果您仍然收到 JScript 运行时错误,您能否指出导致它的代码行?另外,考虑在 dropbox.js GitHub 页面上打开一个问题。这将获得更快的响应。

于 2013-02-18T14:37:11.363 回答