jQuery ajax发布到Web服务

时间:2010-06-23 06:29:08

标签: jquery xml ajax web-services ashx

$(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 个答案:

答案 0 :(得分:10)

dataType应该是您收到的类型,但contentType应该是您发送的mime类型,以下内容应该没问题:

$(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"));
                        }
        });
    });

答案 1 :(得分:2)

你的dataType似乎错了。它应该看起来像

dataType: "xml"

你的data结构看起来也很奇怪。看看.serializeArray()。它应该是标准查询字符串 foo = bar&amp; test = bla 等。

如果success handler被执行,请尝试查找xml变量plain,而不是 使用.find()或其他任何操作。还是空的吗?