【发布时间】:2012-03-30 12:51:36
【问题描述】:
我想使用 Imgur API 实现一个 Javascript 上传器(我认为这是 Stackoverflow 使用的)。但是,我无法使其工作。我尝试了Ajax Upload,但我得到“访问控制允许标头不允许请求标头字段 X-Requested-With”。奇怪的是,我使用了this 插件,但没有收到该错误。相反,我收到了一个 XML 响应,上面写着 <message>No image data was sent to the upload api</message>(我认为这是因为我无法将文件对象作为名为“图像”的参数发送),如 documentation 中所述:
图片 |必填 |发布 |二进制文件、base64 数据或 URL
所以,我的一般问题是:以跨浏览器(IE8+、Chrome、Firefox 和朋友)的方式上传到 Imgur(考虑到它们允许跨域 XHR,这是一个很大的优势)的最简单方法是什么?.
我还阅读了一些关于HTML5's FormData object 的信息,但似乎即使是现在,跨浏览器支持也不是很好,我不确定是否有针对 IE8+、Safari 等的 javascript 实现。
更新:我设法让这个(几乎)使用 Jquery Form Plugin 工作,但我仍然遇到this 问题(与 IE9 相关)。也许这与解决这个问题有关,而这反过来又会解决另一个问题。
UPDATE2: 为了将来参考,Jquery 表单插件可以正常工作。但是,解析包含来自 Imgur 的所有相关数据的 XML 响应时存在问题。有关此问题的更多信息,请参阅Parsing xml/json response in IE9。简而言之:JSON 不是一种选择,XML 应该可以工作,但不能。您可以尝试使用服务器端脚本,通过 AJAX 将请求发送到服务器端脚本,让您的脚本发送上传并正确接收响应。为了不偏离真正的问题,我将关闭这个问题。
任何帮助将不胜感激。
【问题讨论】:
-
我强烈建议阅读this
标签: jquery ajax plugins file-upload cross-domain