Microsoft JScript运行时错误:IE中拒绝访问Dropbox.js

时间:2013-02-07 11:00:54

标签: javascript internet-explorer

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

您正在使用上面的文件来访问Dropbox功能。它包含所有Dropbox功能。我把这个包括在我的申请中,我  使用下面的代码使用writefile函数将文件上传到dropbox  这在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>

但同样的错误。

2 个答案:

答案 0 :(得分:1)

打开IE-&gt;工具 - &gt; InternetOptions

在“安全”选项卡中 - >选择“区域为互联网” - >单击“自定义级别按钮”&gt;选中Miscellaneous下的Domains中的Access数据源中的“启用”。

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

通常表示您尝试更新属性或访问当前安全设置下不允许的内容。

有时候,由于使用了弃用的方法,也会发生这种情况。

答案 1 :(得分:0)

你的问题中没有必要。 dropbox.js打包自己的atob / btoa实现,在IE&lt; = 9上使用。您可以通过访问Dropbox.Util.atobDropbox.Util.atob来尝试IE开发者工具控制台。

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://为HTML页面提供服务。 Dropbox API服务器使用https,IE&lt; = 9不允许从http页面到https服务器的跨域请求。

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

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