javascript - 跨域文件上传

标签 javascript xmlhttprequest cross-domain jsonp

这是我的问题。我想将网站中的一些文件上传到我自己的网站。所以我遇到了众所周知的“同源策略”问题。 我的另一个问题是我不拥有文件上传网站,只能将 html 和 js 添加到现有页面。所以我也没有代理替代方案。 所以我搜索了一些解决方案,发现使用 XMLHTTPRequest 是可能的。但我不知道怎么做。我也想知道 JSONP 是否是我的解决方案。 任何有关“最佳解决方案”的想法将不胜感激。

谢谢大家!

最佳答案

您可以拥有一个包含文件输入的表单,并将操作设置为第三方站点。

如果第三方站点实现 CSRF 保护,则会被阻止。

由于您已排除使用代理,因此您无法确定表单提交的成功或失败。


it's possible with XMLHTTPRequest

MDN有a guide to uploading files with XMLHttpRequest — 但要获得任何反馈,这需要第三方网站允许您通过 CORS 进行访问。如果有CSRF保护的话就彻底失败了。


JSONP 不会有帮助,因为:

  • 您只能使用它发出 GET 请求
  • 第三方网站很多提供 JSONP 端点供您访问

关于javascript - 跨域文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14194171/

相关文章:

java - 如何将日期对象从 UTC 转换为任何时区,如 IST、WAST

javascript - 使用 XMLHttpRequest 获取非 utf8 数据

javascript - 在node.js中使用外部json到jade

javascript - 具有多个函数或自定义回调的 PostMessage

ajax - 同一台服务器的不同端口是否算跨域? (Ajax 方面)

javascript - 切换画廊全屏模式

javascript - 如何使用 Javascript 创建文本 slider

asp.net-mvc - 系统架构 : How to Use the same Banner ( like google banner ) in multiple different websites hosted in different domains or subdomains )

javascript - React 调度未定义删除操作

excel - 将 HTML 导出到具有不同结果的文本文件