Получение JSON из службы WCF - PullRequest
1 голос
/ 25 января 2012

У меня есть простое приложение службы WCF, которое содержит список «комнатных» элементов и несколько методов для извлечения информации в виде JSON через WebInvoke.Метод «GetRooms ()» возвращает в браузере следующие тестовые элементы:

    [{"RoomId":1,"RoomName":"Big Room"},
     {"RoomId":2,"RoomName":"Medium Room"},
     {"RoomId":2,"RoomName":"Small Room"}]

В настоящее время я пытаюсь получить JSON в веб-приложении, используя JQuery, чтобы позже можно было отформатировать его в jqGrid.Я пытаюсь сделать это с помощью следующего кода:

<div>
<input type="button" value="Get Rooms" onclick="getRooms();">
</div>
<div id="rooms">
 <script type="text/javascript" src="lib/js/jquery-1.7.1.js">
     function getRooms() {
       $.ajax({
         dataType: 'jsonp',
         type: "GET",
         url: "http://localhost:6188/RoomBookingService.svc/GetRooms",
         success: function (data) {
             var innerHtml = "";
             for (i = 0; i < data.length; i++) {
                 innerHtml += data[i].RoomId + ' ' + data[i].RoomName + '<br/>';
             }
             $("#rooms").html(innerHtml);
         }
     });
 }
</script>
</div>

Я получаю сообщение об ошибке, в котором говорится, что getRooms не определен.Кто-нибудь может помочь с этим?

1 Ответ

1 голос
/ 25 января 2012

Вместо обработчика кликов inline используйте jQuery для прикрепления обработчика click. Попробуйте это

<div>
<script type="text/javascript" src="lib/js/jquery-1.7.1.js">
 $(function(){
     $("input:button").click(function() {
        $.ajax({
           dataType: 'jsonp',
           type: "GET",
           url: "http://localhost:6188/RoomBookingService.svc/GetRooms",
           success: function (data) {
               var innerHtml = "";
               for (i = 0; i < data.length; i++) {
                  innerHtml += data[i].RoomId + ' ' + data[i].RoomName + '<br/>';
               }
               $("#rooms").html(innerHtml);
           }
        });
    });
 });
</script>
<input type="button" value="Get Rooms" />
</div>
<div id="rooms"></div>
...