pickMultiple导致“不安全的Javascript尝试”

时间:2012-10-16 05:50:18

标签: javascript filepicker.io

嗨,我正在努力让选择器工作。文件将上传查找到我的S3存储桶页面返回Chrome控制台中的以下两个错误:

不安全的JavaScript尝试使用URL https://www.filepicker.io/dialog/open/?key=AJNd2634XTeyMNPGjr51mz&id=1350365313264&referrer=localhost&iframe=true&s=1,3,2,12&multi=true&m=image/ *#/ computer /从具有URL文件://localhost/Users/ben/fpiotest.html的框架访问框架。域,协议和端口必须匹配。  swfobject_src.js:1

未捕获FilepickerException:无效文件以获取元数据:0。不是filepicker url或FPFile对象。 filepicker.js:1

我的网页的完整代码如下:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="jquery-1.8.2.js"></script>
<!-- Adds the Filepicker.io javascript library to the page -->
<script src="https://api.filepicker.io/v1/filepicker.js"></script>
<script src="https://api.filepicker.io/v1/filepicker_debug.js"></script>
<script type="text/javascript">
//Seting up Filepicker.io with your api key
filepicker.setKey('<removed>');

</script>
</head>

<button style="margin-top: 35px" class="btn btn-primary" data-name="complex get" 
onClick="filepicker.pickMultiple(
    {
        mimetype: 'image/*',
        'container':'modal', 
        'metadata': true,
        'services': ['COMPUTER', 'FACEBOOK', 'DROPBOX', 'FLICKR']
    }, 

    function(files){
        var str = '';
        //$('#multiResult').html(JSON.stringify(files));
        for(var file in files) {
            filepicker.stat(file, {size: true, filename: true, width: true, height: true, uploaded: true},
                function(metadata){str += JSON.stringify(metadata);});
        }

        alert(str);
    }, 
    function(err){alert('error: ' + err);});">Run Code</button>
    <!--function(response){$('#multiResult').html(JSON.stringify(response))});">Run Code</button>-->



<div class="row-fluid">
        <div class="span2"><strong>Result:</strong></div>
        <div class="span10">
            <pre id="multiResult"></pre>
        </div>
    </div>
</html>

2 个答案:

答案 0 :(得分:1)

看起来你被for-in循环绊倒了。 “files”是一个数组,所以第一个键将是0,即数组中的索引。我建议做:

for (var i = 0; i < files.length; i++) {
   filepicker.stat(files[i], ...
}

编辑:确保在回调发生后也进行警报。见http://jsfiddle.net/YpX3L/

答案 1 :(得分:0)

出于好奇,您使用的浏览器是什么?

我们在IE9上遇到了类似的问题,并且控制台中的警告完全相同 - 文件上传,但S3存储调用失败了。

不清楚这里的问题是什么,因为它适用于Chrome就好了。