我正在进行70-480考试,其中一个准备问题是找到警报输出。 我的猜测是警报会显示“type:undefined”。但假设的正确答案显示它显示“type:int”。
我很难理解我在这里失败的地方。 令我困惑的四点是:
发布将在WebService中执行该功能,但
成功函数响应如何获取文档对象?这是POST的标准成功响应吗?
成功不会成真吗?或者......它是否返回了真正的http代码?但话又说回来,它如何与documentElement.localName?
在Google上搜索后,我发现localName为我提供了该节点的名称。我没有看到它给出了检索对象类型的指示。
以下代码:
[在WebService.asmx]
private int myNumber = 57;
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public int GetNumber() {
int diff = new Random().Next(32);
myNumber = myNumber + diff - 16;
return myNumber;
}
[在JavaScript中]
function getNumber() {
$.ajax({
type: "POST",
url: "/WebService.asmx/GetNumber",
success: function (response) {
alert("type: " + response.documentElement.localName);
}
});
}
答案 0 :(得分:1)
您的网络服务调用的return myNumber;
是int
当您调用ajax并成功完成时,将调用您在success
中提供的功能。此功能自动传递来自Web服务的响应。
在您的成功功能中,您调用response.documentElement.localName
,它会为您提供int
,因为您的回复中唯一的内容是一个整数
答案 1 :(得分:0)
使用jQuery的ajax()函数,您可以指定您希望从服务器返回的格式。您可以使用dataType关键字设置该期望。默认是智能猜测,因此它会尝试从响应中生成xml,json,script或html。如果没有人可以猜到,你会得到一个字符串。
要获取http返回码,请使用statusCode关键字,该关键字应为JSON,HTTP代码作为键,并作为值运行。例如:
$.ajax({
statusCode: {
404: function() {
alert( "page not found" );
}
}
});
至于成功领域,文档非常具体:
阅读jQuery的ajax函数的整个文档<强>成功强>
类型:功能(任何数据,字符串textStatus,jqXHR jqXHR)
请求成功时要调用的函数。功能得到 传递了三个参数:从服务器返回的数据,格式化 根据dataType参数或dataFilter回调 功能(...)