如何使用 jsonp 将图像发送到服务器?

How can I send an image using jsonp to a server?

我正在开发应用程序并使用 Javascript 的方法 'jsonp' 向 php 和 MYSQL 服务器发送和获取数据,因为应用程序不是在我保存数据的同一台服务器上。

我可以使用与 jsonp 相同的方法将图像发送到该服务器吗, 喜欢对其进行编码或使用二进制或其他东西?

您无法使用 jsonp 流式传输图像。 你有两个选择使用iframe trick

或者你可以使用 websockets

如果您将图像 base 64 编码为 json 字符串图像,您将受到文件大小的限制。

您可以对图像进行 base64 编码并将其作为字符串发送。你会在客户端做一些事情:

var the_file = new Blob([window.atob(base_64_string)], { type: 'image/png', encoding: 'utf-8' });
var fr = new FileReader();
fr.onload = function (oFREvent) {
    var v = oFREvent.target.result.split(',')[1];
    v = atob(v);
    var good_b64 = btoa(decodeURIComponent(escape(v)));
    img.src = "data:image/png;base64," + good_b64;
    img.onload = function () {
        //do stuff here
    };
};
fr.readAsDataURL(the_file);

正如@SLaks 在他的评论中暗示的那样,考虑使用 CORS header 作为端点而不是 jsonp,但这不是必需的。

不确定您的用例是什么,但为什么不对图像使用 link?