我编写了以下代码来将参数传递给服务器,并获得响应。
实际上,我的回复应该是要在网格上打印的报告。
调试代码时,调试器会进入load参数,但我不了解如何获取所需的报告数据。
如果我朝着正确的方向前进,也请建议我。
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;
}
答案 0 :(得分:0)
假设您已经实现了服务器端代码,那么您应该在加载函数处理程序的data
参数中接收数据。 handleAs
参数设置为json
,这意味着它希望以该格式接收响应数据。具体如何处理客户端数据将取决于您在服务器端如何构建它。您说响应数据应该是要在网格上打印的报表,那么您需要做的是从data
参数中获取该报表并将其添加到DOM。如何再次完成此操作将取决于您从服务器返回的确切内容,即预格式化的HTML,格式化为HTML的原始数据等。
答案 1 :(得分:0)
如果您的服务器正确回答,报告数据将传递给已经解析的load
回调,即作为对象。
结帐this jsFiddle以查看工作示例。
或者,您可以从函数返回deferred
并处理then
回调中的数据,如前面提到的jsFiddle中所示。
答案 2 :(得分: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);
}
}