0

我正在尝试使用 jQuery 在 js 中调用 java 方法。正如 Fiddler 中所证明的那样,该调用实际上正在工作,但始终调用 jQuery 错误方法,我无法得到响应。不知道为什么会这样。这可能是一个跨域调用,但它实际上是成功的,我可以从 Fiddler 获得 xml 响应。我想我可能只是在 ajax 方法上有错误的标签。据我所知,我的“数据”不是一个数组或名称/值对,它只是一个发送的 xml 字符串。我错过了什么?

  var jqxhr = $.ajax({
        type: "POST",
        url: userManagementUrl,//the js call version of this
        data: '<?xml version="1.0" encoding="UTF-8"?><WebClientRequest xmlns="http://xsd.rt.state.id.us/usermanagerservice" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><requestMethodList><requestRights><userName>' + $("#loginUsername").val() + '</userName><password>' + $("#loginPassword").val() + '</password></requestRights></requestMethodList></WebClientRequest>',

        //async: false,
        //contentType: "text/xml",
        dataType: "xml",
        //crossDomain: true,
        success: function (xml) {
            if (xml) {
                //parse through the xml response looking for status
                var node = $(xml).find("result").text();
                if (node) {
                    if (node === "success") {
                        boolLoggedIn = true;
                        $("#loginDialog").dialog("close");
                    }
                    else {
                        boolLoggedIn = false;
                        alert("login failed");
                    }
                }
                else {
                    console.log("could not find result node");
                }
            }
            else {
                console.log("error logging in");
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {
            console.warn("error in login call");
            $("#txtLoginStatus").html("<b>Login failed!</b>");
            boolLoggedIn = false;
        }
    });

    jqxhr.done(function (result) {
        console.log("Logged In");
        $("#loginDialog").dialog("close");
    });

    jqxhr.always(function (result) {
        console.log("Logged In");
        $("#loginDialog").dialog("close");
    });

    jqxhr.then(function (result) {
        console.log("Logged In");
        $("#loginDialog").dialog("close");
    });
}); 
4

0 回答 0