从Ajax调用获取响应文本

时间:2013-03-12 22:29:53

标签: java html ajax jquery

我试图将Ajax调用的响应转换为html标签。我正在使用tomcat服务器。我能够看到从服务器返回的描述但是如何将响应转换为标签文本。 Under是我试过的:

Jquery的

 function GetDescription(Id){                   
        $.ajax({
        type:'GET',
        url:'getDescription.htm',
        data:{dId:Id},
        dataType: 'json',
        success: function (data) {

            $('.TypeDesc').text = data.responseText;

        }

    });

}

$(document).ready(function() {      


            $(".photos").each(function(i){              

                if ($(this).val() != '') {
                       var image = new Image();                      
                        image.src =  $(this).val();

                        image.onload = function(){ 
                                       var typeId = document.getElementsByClassName("TypeId")[i].value;
                                       GetDescription(typeId);

                                       var ctx = document.getElementsByClassName("canvas")[i].getContext('2d');
                                       ctx.drawImage(image,0,0, 320, 240); 
                         }               
                }
            });       




        });

HTML

</head>
<body>
<div id ="content">
<c:forEach items="${object}" var="i">
<div id="table">    
    <div>
        <p><canvas class="canvas" height="240" width="320"></canvas>
    </div>
        <a href="registration.htm">Name:- ${i.fName}  ${i.lName}</a>
        <input type="hidden" id="photo" value="${i.photo}" class="photos"/>
        <input type="hidden" id="Number" value="${i.Number}" />
        <input type="text" class="TypeId" value="${i.citizenTypeId}"/>
        <label class="TypeDesc"></label>
</div>
</c:forEach>
</div>
</body>
</html>

3 个答案:

答案 0 :(得分:3)

问题是你告诉jQuery你期待JSON:

dataType: 'json',

...所以它(尝试)将响应解析为JSON并传递给您一个对象,但之后您尝试将其用作原始XHR对象。

如果您需要文字,请移除dataType或将其更改为dataType: 'text',然后使用data这将是一个字符串。

您的另一个问题是text功能,而不是属性,因此您需要调用

所以:

dataType: 'text',
success: function (data) {

    $('.TypeDesc').text(data);

}

答案 1 :(得分:1)

请将此添加到ajax调用的参数

    success: function(data) {
        $('.TypeDesc').each(function(){
            $(this).text(data);
        });
    }

答案 2 :(得分:0)

您需要为标签指定一个唯一的ID,例如id="TypeDesc{i}"或其他不同的ID。

所以你可以这样说: $('#TypeDesc{i}').text = data.responseText;