Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过AJAX返回图像数据_Javascript_Ajax - Fatal编程技术网

Javascript 通过AJAX返回图像数据

Javascript 通过AJAX返回图像数据,javascript,ajax,Javascript,Ajax,好了,伙计们,这件看起来很简单,但让我抓狂。现在是凌晨2点,所以我要把它放在那里 我正在制作一个概念验证页面,加载json数据并将其放入一个表中。完成了 对于主json数组中的每个对象,都有一个带有ID的图像数组 这些ID可以与dataID结合使用,形成另一个AJAX请求的长url,这次是一个图像 这是棘手的部分。在最终处理CORS问题之后,我终于收到了带有响应的数据包。基本上我是以一种最奇怪的方式被搞砸了。以下是我的回答中的一小部分: ÿØÿàJFIFÿÛ ( %!1!%)+...!683

好了,伙计们,这件看起来很简单,但让我抓狂。现在是凌晨2点,所以我要把它放在那里

  • 我正在制作一个概念验证页面,加载json数据并将其放入一个表中。完成了
  • 对于主json数组中的每个对象,都有一个带有ID的图像数组
  • 这些ID可以与dataID结合使用,形成另一个AJAX请求的长url,这次是一个图像
  • 这是棘手的部分。在最终处理CORS问题之后,我终于收到了带有响应的数据包。基本上我是以一种最奇怪的方式被搞砸了。以下是我的回答中的一小部分:

    ÿØÿàJFIFÿÛ  ( 
    %!1!%)+...!683-7(-.+...
    
    那对我来说是垃圾。但这与这张照片的拍摄方式有关。我一直在处理内容类型,但即使是文本/纯文本看起来也是这样。我是从开发者工具的视图和Chrome的网络标签中得到的。当我从响应转到“预览”时,文本内容如下:

    “/9j/4AAQSKZJRGABAQAAAQABAD/2wCEAAkGBxMTEhUSEhMVFhUWGBkaGBcXGBYYGBseGBsaFxoXGRo
    Higgb…

    基本上,“预览”选项卡中的内容是完美的。我把它放在
    src='data:image/png之后的图像标签中;base64,“
    +这些东西,它工作得非常好。我真正想要的是Chrome是如何从回复中得到这些文字的?我如何从
    success:function()data{}
    $.ajax调用
    中获得它呢。我将把我正在做的事情放在代码下面,但这是相当标准的。数据包返回我想要的所有内容,只是预览版本,而不是响应版本。我找不到任何文件

    var response = $.ajax({
                type: 'GET',
                url: 'http://dev.dragonflyathletics.com:1337/api/dfkey/events/' + item.id + '/media/' + imageID,
                contentType: 'multipart/form-data',
                headers: {
                    'Authorization': 'Basic ' + btoa('**:**')
                },
                success: function (data) {
                    a = data;
                    imgTag = '<img alt="' + item.images[0].caption + '" src="data:image/png;base64,' + data + '">';
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    console.log(errorThrown);
                    //alert(jqXHR);
                    //alert(textStatus);
                    //alert(errorThrown);
                    //requestRetry('events', 3);
                }
            });
    
    var响应=$.ajax({
    键入:“GET”,
    网址:'http://dev.dragonflyathletics.com:1337/api/dfkey/events/'+item.id+'/media/'+imageID,
    contentType:“多部分/表单数据”,
    标题:{
    “授权”:“基本”+btoa(“**:**”)
    },
    成功:功能(数据){
    a=数据;
    imgTag='';
    },
    错误:函数(jqXHR、textStatus、errorshown){
    console.log(错误抛出);
    //警报(jqXHR);
    //警报(文本状态);
    //警报(错误抛出);
    //请求重试('events',3);
    }
    });
    

    请帮帮我,我会在早上标记答案,看起来有点像是在解码Base64。也许可以指定您希望得到什么样的
    dataType
    ?如果当您以
    base64
    的形式输入图像时,图像可以正常工作,那么文本就是这样。也许这可以帮助@tomacco Nice find-我不知道您可以这样做。