JQuery AJAX пост к веб-сервису - PullRequest
6 голосов
/ 23 июня 2010
$(document).ready(function() {
        $.ajax({ type: "POST",
                        url: "/getprojects.ashx",
                        data: "<formData client=\"\" year=\"\" categories=\"\" tags=\"\" freeText=\"\" count=\"34\" page=\"1\"></formData>",
                        dataType: "text/xml",
                        cache: false,
                        error: function() { alert("No data found."); },
                        success: function(xml) {
                            alert("it works");
                            alert($(xml).find("project")[0].attr("id"));
                        }
        });
    });

Моя проблема в том, что я получаю некоторые данные обратно, но не могу их отобразить.

Ответы [ 2 ]

10 голосов
/ 23 июня 2010

dataType должен быть типом того, что вы получаете, но contentType должен быть типом пантомимы того, что вы отправляете, должно быть в порядке:

$(document).ready(function() {
        $.ajax({ type: "POST",
                        url: "/getprojects.ashx",
                        data: "<formData client=\"\" year=\"\" categories=\"\" tags=\"\" freeText=\"\" count=\"34\" page=\"1\"></formData>",
                        contentType: "text/xml",
                        dataType: "xml",
                        cache: false,
                        error: function() { alert("No data found."); },
                        success: function(xml) {
                            alert("it works");
                            alert($(xml).find("project")[0].attr("id"));
                        }
        });
    });
2 голосов
/ 23 июня 2010

Ваш dataType, похоже, не прав.Он должен выглядеть так:

dataType: "xml"

Ваша структура data также выглядит довольно странно.Посмотрите на .serializeArray () .Это должна быть стандартная строка запроса foo = bar & test = bla и т. Д.

Если выполняется success handler, попробуйте поискать переменную xml plain без операции с ней с помощью .find() или что угодно.Все еще пусто?

...