0

我编写了以下代码将参数传递给服务器,并获得响应。

实际上,我的响应应该是要在网格上打印的报告。

调试代码时,调试器正在加载参数内部,但我不明白如何获取所需的报告数据。

如果我朝着正确的方向前进,也请建议我。

function SearchUser() {
    var userName = document.getElementById("txtUserName").value;
    var firstName = document.getElementById("txtFirstName").value;
    var lastName = document.getElementById("txtLastName").value;
    var applicationName = document.getElementById("txtApplicationName").value;
    var roleName = document.getElementById("txtRoleName").value;
    var locationType = document.getElementById("txtLocationType").value;
    var location = document.getElementById("txtLocation").value;
    var userType = document.getElementById("txtUserType").value;
    var isAdmin = document.getElementById("chkAdmin").checked;
    //ValidateSearchUser();
    //var str = "User name: " + userName + ", First name: " + firstName + "Last name: " + lastName + ", App. name: " + applicationName + ", Role: " + roleName + ", Location type: " + locationType + ", Location: " + location + ", User type: " + userType + ", Is Admin? " + isAdmin + "\nSearch functionality yet to be developed.";
    //alert(str);

    var searchUserParameters = { "pageIndex": "1", "pageSize": "100", "userName": ""+ userName +"", "firstName":""+ firstName +"", "lastName":""+ lastName +"", "userType":""+ userType +"", "appName":""+ applicationName +"", "roleName":""+ roleName +"", "LocationType":""+ locationType +"", "location":""+ location +"", "isAdmin":""+ isAdmin +"" };

    var xhrArgs = {
        //url: "postIt",
        postData: dojo.toJson(searchUserParameters),
        handleAs: "json",
        headers: { "Content-Type": "application/json", "Accept": "application/json" },
        load: function (data) {
           //I am not understanding what code to write here.
        },
        error: function (error) {
            alert("SVS error:" + error);
        }
    }


    var deferred = dojo.xhrPost(xhrArgs);



    return false;
}
4

3 回答 3

0

假设您已经实现了服务器端代码,您应该在data加载函数处理程序的参数中接收回数据。该handleAs参数设置为json意味着它期望接收该格式的响应数据。您在客户端处理数据的确切方式将取决于您在服务器端如何构建数据。您说响应数据应该是要在网格上打印的报告,那么您需要做的就是将该报告从data参数中取出并将其添加到 DOM 中。您如何再次执行此操作将取决于您从服务器返回的确切内容,即预格式化的 HTML、要格式化为 HTML 的原始数据等。

于 2013-08-18T14:30:31.393 回答
0

我已经像下面这样修改了我的代码,现在问题已经解决了。感谢所有尝试满足我要求的人。

    var xhrArgs = {
        postData: dojo.toJson(searchUserParameters),
        handleAs: "text",
        headers: { "Content-Type": "application/json", "Accept": "application/json" },
        load: function (data) {
            document.getElementById("searchUserOutput").innerHTML = data;
        },
        error: function (error) {
            alert("SVS error:" + error);
        }
    }
于 2013-08-19T10:14:17.153 回答
0

如果您的服务器正确回答报告数据将被传递给load回调,已经解析,即作为一个对象。

查看这个 jsFiddle以查看一个工作示例。

或者,您可以deferred从函数返回并在then回调中处理数据,如前面提到的 jsFiddle 中所见。

于 2013-08-18T14:58:58.403 回答