我想设置一个兼容IE8的跨域文件上传解决方案。我一直在使用blueimp's JQuery File Upload plugin with the iframe transport option。
上传效果很好,但我无法从服务器端获取上传结果。用于解析的result.html文件的重定向选项似乎是解决方案,但问题是我无法访问托管表单的服务器来部署HTML文件。在这种情况下,有没有其他方法可以在不将HTML文件部署到源服务器的情况下检索上载结果?
答案 0 :(得分:0)
在javascript文件中,您可以添加此事件侦听器(for non-jQuery way see this answer)
$(window).on('message', function(e){
var data = e.originalEvent.data || e.originalEvent.message;
data = JSON.parse(data); //only if you did JSON.stringify for the data you sent
//do what you need with the message you send.
});
接下来,当上传完成后,您可以将其写入页面或将iframe重定向到另一个包含此内容的网页。
window.parent.postMessage('File Upload Done', '*');
如果你需要向父母发送更多数据,你需要首先JSON.stringify
内容(旧的IE和FF不允许对象,只是字符串。)
window.parent.postMessage(JSON.stringify({'success': true, 'id': 1942}), '*');