Как вызвать веб-API в HTML-странице с помощью JQuery? - PullRequest
0 голосов
/ 01 ноября 2018

Я изучаю веб-API, где я создал HTML-страницу, и я хочу получить список <ul> на моей HTML-странице.

Для вызова API я использовал вызов Jquery ajax, но, похоже, не работает. Я отладил Jquery, но не получил ошибки.

Пожалуйста, предложите мне, где я иду не так.

Мой HTML-код

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <script src="Scripts/jquery-1.10.2.js"></script>
    <script>
        $(document).ready(function () {
            var listitem = $('#ulEmployees');

            $('#btn').click(function () {
                debugger;
                $.ajax({
                    Type: 'GET',
                    url: 'api/employees',
                    dataType: JSON,
                    success: function (data) {
                        listitem.empty();
                        debugger;
                        $.each(data, function (index, val) {
                            var fullname = val.FirstName + ' ' + val.LastName;
                            listitem.append('<li>' + fullname + '</li>');

                        });
                    }

                });
            });

            $('#btnClear').click(function () {
                listitem.empty();
            });
        });
    </script>

</head>
<body>
    <input id="btn" value="Get All Employees" type="button" />
    <input id="btnClear" type="button" value="Clear" />
    <ul id="ulEmployees"></ul>

</body>
</html>

Web API GET Метод

 public class EmployeesController : ApiController
    {

        public HttpResponseMessage Get(string gender="All")
        {
            using (EmployeeDBEntities entities = new EmployeeDBEntities())
            {
                switch(gender.ToLower())
                {
                    case "all":
                        return Request.CreateResponse(HttpStatusCode.OK, entities.Employees.ToList());
                    case "male":
                        return Request.CreateResponse(HttpStatusCode.OK, entities.Employees.Where(e => e.Gender.ToLower() == "male").ToList());
                    case "female":
                        return Request.CreateResponse(HttpStatusCode.OK, entities.Employees.Where(e => e.Gender.ToLower() == "female").ToList());
                    default:
                        return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Not found");

                }
            }

        }
}

1 Ответ

0 голосов
/ 01 ноября 2018

Тип данных не должен передаваться. Ваша функция должна быть такой, как показано ниже, с типом данных JSON. Внутренне в jquery вызов не будет выполнен, пока он пытается преобразовать тип данных с помощью функции .toLower.

$('#btn').click(function () {
                debugger;
                $.ajax({
                    Type: 'GET',
                    url: 'api/employees',                        
                    success: function (data) {
                        listitem.empty();
                        debugger;
                        $.each(data, function (index, val) {
                            var fullname = val.FirstName + ' ' + val.LastName;
                            listitem.append('<li>' + fullname + '</li>');

                        });
                    }

                });
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...