Ajax表现为未定义

时间:2017-05-04 04:38:45

标签: jquery html json ajax undefined

所以我目前正在使用这个网站应用程序,我试图使用大学网站和AJAX中的JSON来显示我的大学有多少个PC可用。我无法弄明白,但是它显示了第一个房间的所有MAC,然后它的说法未定义给其他人,它的所有代码块,所以我无法看到它出错的地方任何建议都会很棒。

JS:

    var container = $('div.container');
$('input#get').click(function(){
    $.ajax({
        type: 'GET',
        url: '(mylink)',
        dataType: 'jsonp',
        success: function(data) {
        $.each(data, function(index, item) {
        $.each(item, function(key, value) {
            container.append('<div class="pcsinside">' + value.displayName + '</div>' + 'PCs available:' + '&nbsp' + value.availPCs + '&nbsp' + 'out of' + '&nbsp' + value.numPCs + '<br/>' + 'Macs available:' + '&nbsp' + value.availMacs + '&nbsp' + 'out of' + '&nbsp' + value.numMacs + '<br/>');
           });

          });

         }
     });
})

HTML:

&#13;
&#13;
<div class="container">
            <div id="form-area">
            <input id="get" type="submit" value="Press For PC Availability">
            </div>
            <div class="pcsinside">
            </div>
        </div>
&#13;
&#13;
&#13;

这就是它的样子,只要PC更改了PC和MAC(除了未定义的PC),它就会更新。enter image description here

它适用于第一个但不适用于其他MAC,最新情况如何?任何帮助都会非常感谢员工。

2 个答案:

答案 0 :(得分:0)

首先在dataType中放入'jsonp'而不是'json'。 S Jayesh是对的,你必须通过字符串来看答案。见这个例子。

$.ajax({
    url: "blabla.php",
    data: data,
    type: 'POST',
    contentType: "application/x-www-form-urlencoded",
    dataType: 'json',
    error: function(data){
        var err = JSON.stringify(data);
alert(err);
    },
    success: function(data){
        var succ = JSON.stringify(data);
alert(succ);
    }
});

通过该结构,您将看到问题所在。使用post而不是get,它会更好。

答案 1 :(得分:-2)

要将JSON显示为字符串,您需要使用JSON.stringify()函数:

container.append('<div>'+ JSON.stringify(value.displayName) +'</div>');