0

手动上传器在所有浏览器上都能正常工作,除了 IE 10,我没有从服务器获得正确的响应,它在 onComplete 上显示“没有从加载的 iframe 接收到有效消息 For i frame Name 1_97604 cec...... ”。文件正在上传到 cloudbees 服务器,但没有从服务器获得正确的响应。在其他浏览器的情况下,我得到 Response.success = true,但对于 IE 10 它未定义,如何处理此错误。请帮我解决这个问题。

问候尤格什

4

1 回答 1

0

如果这是您看到的消息,那么您没有使用 IE10。很可能,您使用的是 IE9 或更早版本。您看到的消息由表单上传器记录,如果您通过 IE10 上传,则永远不会使用该消息。也许您在 IE9 或 IE8 模式下运行 IE10。无论哪种方式,该消息都表明您正在跨域环境中工作(您已设置cors.expected选项为 true)但没有从您的服务器返回正确的响应。请注意,较旧的浏览器(例如 IE9 和更旧的浏览器)利用针对 iframe 的表单提交来上传文件。为了访问该跨域 iframe 的内容,iframe 需要将包含服务器响应的消息发布到 Fine Uploader 的窗口。这一切都很容易做到,您需要做的就是从您的服务器返回一个 text/html 响应,如下所示:

"{\"success\": true, \"uuid\": \"9da17ad5-ad6a-40cd-81b5-226e837db45b\"}<script src=\"http://<YOUR_SERVER_DOMAIN>/iframe.xss.response-<VERSION>.js</script>.js\"></script>"

脚本标签中提到的 javascript 文件在 Fine Uploader 发布的 zip 文件中提供。它为您完成所有工作。您必须在脚本标记之前返回 JSON 响应,如上所示,并且响应必须包含关联文件的 UUID。

您应该在相关的博客文章中阅读有关跨域支持的信息。

于 2013-09-16T14:29:19.167 回答