发送“大量”数据跨域

时间:2012-10-30 11:45:43

标签: javascript ajax cross-domain html2canvas

我有一个javascript bookmarklet,它创建一个元素的屏幕截图并将其保存为base64编码的字符串。

现在,我需要将该图像/字符串发送到我自己的服务器以保存它。唯一的问题是它长达6000多个字符,或者大约61 KB,这使得它GET回到我的服务器是不现实的。

是否有某种外部服务会以某种方式将其恢复到我的服务器上?如何将此图像发送到我的服务器?

1 个答案:

答案 0 :(得分:2)

使用POST。

选项A.)使用JavaScript创建表单并发布数据。如果您不希望更改页面位置,请将表单的target设置为隐藏的iframe。

如果您需要在帖子后从服务器获得回复,请在您发布的表单中添加一个唯一键,例如<input type="hidden" name="key" value="...">,然后在帖子完成后使用JSONP获取响应,例如http://yourserver.com/donepost.php?key=...。由于您无法确定在发出JSONP呼叫之前该帖子是否已完成,因此您需要不断检查服务器,直到有效响应可用或超时为止。

选项B.)使用AJAX发布。在服务器上设置Access-Control-Allow-Origin标题以允许此操作。