我正在编写一个应用程序,我希望客户能够直接从浏览器上传到Amazon S3.我可以把这项工作做得很好.但是当出现错误时,我希望比在客户屏幕上展开XML文档更优雅地处理它们.
我有一个我认为可行的方案,但它失败了.这是我正在尝试的:
创建表单以进行上载,并将表单存储在S3本身上,与表单的"action"属性位于同一域中.
将客户重定向到此表单.现在他们的浏览器位于https://
该页面包含隐藏的iframe.表单将其目标设置为iframe.
load事件处理程序查看iframe的内容,并对其进行操作.
所以,像这样:
用这个javascript(使用jquery):
function handler() { var message = $("#foo").contents().find('message').text(); alert(message); } $("#foo").load(handler);
使用firebug,我可以看到iframe包含一个XML文档,其中包含一个"消息"节点.但是,.find('message')
始终无法在XML文档中找到任何内容.
请注意,表单的操作与文档本身具有相同的域,端口和方案.所以,我认为我不应该违反同源政策.对?但它每次都失败了.这是使用Firefox和谷歌Chrome浏览器.
谢谢你的建议!