2013-01-07 55 views
2

这里是我的问题。我想在网站上做一些文件上传到我自己的文件。所以我有了众所周知的“同源政策”问题。 我的另一个问题是我没有自己的文件上传网站,只能添加HTML和JS到现有的网页。所以我也没有替代方案。 所以我寻找了一些解决方案,并发现XMLHTTPRequest是可能的。但我不知道如何。另外我想知道如果JSONP可能是我的解决方案或不。 任何想法的“最佳解决方案”将不胜感激。跨域文件上传

谢谢大家!

回答

2

你可以有一个包含文件输入的表单,并设置动作到第三方网站。如果第三方网站实施CSRF保护

这将被阻止。

既然你已经排除了使用代理,也没有办法为你确定表单提交的成功或失败。


有可能使用XMLHttpRequest

MDN拥有a guide to uploading files with XMLHttpRequest - 但要获得任何反馈,这将要求第三方网站允许您通过CORS访问。如果有CSRF保护,它将完全失败。


JSONP不会帮助,因为:

  • 你只能用它
  • GET请求的第三方网站提供多一个JSONP端点您访问
+0

我拥有第三方网站。上传网站不是我的。如何用base64或sth将文件发送到我的端点? – Hosein

+0

唯一的好处是用Base64编码,如果你可以将数据编码的查询字符串...这将打击对非小文件所支持的最大URL长度。 – Quentin

+0

没错!关于你的第一个解决方案,我可以用js来做,而且不用页面回发吗? – Hosein