使用 AJAX Jquery 以 JSON 格式显示检索到的图像 URL

Posted

技术标签:

【中文标题】使用 AJAX Jquery 以 JSON 格式显示检索到的图像 URL【英文标题】:Display Retrieved Image URL in JSON using AJAX Jquery 【发布时间】:2020-12-13 13:34:26 【问题描述】:

我正在使用 Ajax 从数据库中检索数据以进行调用,并且响应是 JSON 格式。我可以检索其他数据但我需要引入图像,我可以检索图像 URL,如返回的 JSOn 中所示,但图像未显示。

下面是 Ajax 调用。

 $("#btnGet").click(function () 
                if ($('#Account_Number').val() == '' || $('#Account_Number').val() == undefined) 
                    alert('Please Enter Customer Account Number');
                    return false;
                
                $('.spinner').css('display', 'block');  
                $.ajax(
                    type: "POST",
                     url: "@Url.Action("AccountDetailsDebit", "Transactions")",
                    //url: "/Transactions/Transactions/SearchAccount",
                    data: 'accountNo: "' + $("#Account_Number").val() + '" ',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) 
                        alert("Hello: " + response.Firstname + " .\nYour Account Balance is: " + response.Old_Balance);
                        $('#Firstname').val(response.Firstname);
                        $('#Surname').val(response.Surname);
                        $('#Account_Type').val(response.Account_Type);
                        $('#Old_Balance').val(response.Old_Balance);
                        $('#Phone_Number').val(response.Phone_Number);
                        $('#imgPassport').attr('src', response.Image_Url);
                        $('#Account_Number').attr('readonly', 'true');
                         $('.spinner').css('display', 'none');
                    ,
                    failure: function (response) 
                       
                        alert('Account Number Does Not Exist Or Error Processing Request');
                        $('.spinner').css('display', 'none');
                    ,
                    error: function (response) 
                      
                        alert('Account Number Does Not Exist Or Error Processing Request');
                        $('.spinner').css('display', 'none');
                    
                );
            );

JSON 响应如下:

"Image_Url":"~/Images/Uploads/SavingsAccount/1000000007.jpg","Account_Number":null,"Firstname":"Sahad","Surname":"HAMMED","Phone_Number":"+46543241324","Account_Type":"Savings Account","Old_Balance":0,"Amount":0,"New_Balance":0

下面是渲染图像的视图:

<div class="col-sm-2 w3-card-4">
    <br />
    <h5 class="w3-center"><strong>Mandate</strong></h5>
    <img id="imgPassport"     name="imgPassport" />
    
</div>

我遇到的问题是即使返回的 URL 存在,图像也不显示。

【问题讨论】:

console.log(response.Image_Url) 输出什么? @Crezzur,它带来了~/Images/Uploads/SavingsAccount/10000000007.jpg 这实际上是保存的 URL,它正在正确检索它 你能在 $('#imgPassport').attr('src', response.Image_Url); 上设置一个断点吗? ?很可能在到达行之前存在 javascript 错误。如果你到达那里然后检查 response.Image_Url。将其复制到硬编码的 html img 中(查看 url 是否有效) 可能是图片没有加载,因为它以~开头。尝试对不同的 URL 进行硬编码,看看有什么用。我还假设您可以使用 $('#imgPassport').attr('alt', response.Image_Url) 更改 alt 文本(作为一种能够操作 html 元素的测试方式)? 【参考方案1】:

谢谢大家的回复。响应有 ~ 这就是导致问题的原因。删除〜后,图像开始正常加载

【讨论】:

以上是关于使用 AJAX Jquery 以 JSON 格式显示检索到的图像 URL的主要内容,如果未能解决你的问题,请参考以下文章

ajax请求的数据格式都有哪些?

05 ajax,jquery,xstream,json解析

jquery下的ajax和jsonp实现与区别

JSON&Ajax(语法格式+解析json)

ajax返回json处理

使用 php 对 Mysql 的 Ajax JQuery 请求不适用于 JSON