JQuery вызов AJAX дает ошибку, в сочетании с RESTful API - PullRequest
0 голосов
/ 03 января 2012

Мне нужна помощь в анализе того, почему следующий короткий код jquery не работает.Вызов ajax основан на RESTful API, и я подтвердил, что именно этот вызов работает.Так что проблем с бэкендом нет.Я просто обеспокоен внешним интерфейсом, в котором у меня нет опыта. Я думаю, что следующее должно быть довольно простым, и я не могу понять, что заставляет ajax ошибаться.Что-то явно не так?

<head>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#submit").click(function () {
                var data = {};
                data["login_name"] = $("#login_name")[0].value;
                data["password"] = $("#password")[0].value;

                $.ajax({
                    type: "POST",
                    url: "https://website.com/a/login",
                    data: data,
                    dataType: "json"
                }).success(function (data) {
                    $("#output")[0].value = JSON.stringify(data, null, "\t");
                }).error(function (a, b, c) {
                    $("#output")[0].value = alert(JSON.stringify(c, null, "\t"));
                });
                $("#output")[0].value = "Sending...";
            });
        });
    </script>
</head>
<body>
    <span class="value">
        <input type="text" class="value" id="login_name" style="width:350px" />
    </span>
    <span class="value">
        <input type="text" class="value" id="password" style="width:350px" />
    </span>
    <span>
        <input type="button" id="submit" value="Send Request" />
    </span>
    <textarea id="output" readonly="readonly"></textarea>
</body>

Я могу только подозревать, что с данными что-то не так.Я создал приведенный выше код, изменив существующий код:

var data = {};

    $("#fields div.entry").each(function(i,elem) {

        elem = $(elem);

        data[elem.find("input.field")[0].value]=elem.find("input.value")[0].value;

    });

приведенный выше код был в исходном рабочем коде, который создал данные, я не вижу, чем он отличается от созданного мной массива данных ....

1 Ответ

0 голосов
/ 03 января 2012

В качестве быстрого предположения вы можете попробовать добавить тип контента к сообщению:

        $.ajax({
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            url: 'https://website.com/a/login',
            data: data,
            dataType: 'json'
...