我使用 rails 3.2、turbolinks 和 Filepicker.io 开发了一个 Web 应用程序
我像这样加载 API 密钥(coffeescript)。我认为$(document).ready
就足够了,因为文件选择器脚本会在第一次请求时加载一次。
$(document).ready ->
filepicker.setKey "MY_KEY"
我使用以下(咖啡脚本)加载 Filepicker。我应该注意到我使用了jquery-turbolinks
gem,它在 jquery 中构建了对 turbolinks 的支持。
jQuery ->
$("#publications_bulk-new #upload-button").on "click", ->
form = $(this).closest('form')
filepicker.pickAndStore
当我直接访问该页面时,文件选择器按预期工作。但是,当我使用 turbolink 请求访问该页面时,我无法上传任何文件。
我可以打开表单,在 Dropbox 中浏览等。但是在上传时,我看到以下红色错误消息:
Cannot send results to the applicaiton. Sorry about this, it's our fault. Please close this window and try again.
再试一次也无济于事。
我检查了 Chrome 28.0 的控制台是否有任何错误消息,发现:
Blocked a frame with origin "https://www.filepicker.io" from accessing a frame with origin "http://placeholder.library.dev". The frame requesting access has a protocol of "https", the frame being accessed has a protocol of "http". Protocols must match.
main.js:7
u main.js:7
l main.js:7
i.uploadFiles main.js:7
v.onFileDrop main.js:7
r lodash.min.js:6
(anonymous function) main.js:7
Uncaught Communication iframe not found main.js:7
u main.js:7
l main.js:7
i.uploadFiles main.js:7
v.onFileDrop main.js:7
r lodash.min.js:6
(anonymous function)
2013-07-29 更新“协议、域和端口必须匹配”
我将当前代码推送到我的生产环境,因为消息表明这取决于我的(开发)页面缺少 SSL 加密。
不幸的是,这不是唯一的问题
Blocked a frame with origin "https://www.filepicker.io" from accessing a frame with origin "https://jkreutz.mylibrar.io". Protocols, domains, and ports must match. main.js:7
u main.js:7
l main.js:7
i.uploadFiles main.js:7
v.onFileDrop main.js:7
r lodash.min.js:6
(anonymous function) main.js:7
Uncaught Communication iframe not found main.js:7
u main.js:7
l main.js:7
i.uploadFiles main.js:7
v.onFileDrop main.js:7
r lodash.min.js:6
(anonymous function)