Javascript Ajax响应类型

时间:2016-01-04 09:58:05

标签: javascript jquery ajax

我正在进行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);
        }
    });
}

2 个答案:

答案 0 :(得分:1)

您的网络服务调用的return myNumber;int

当您调用ajax并成功完成时,将调用您在success中提供的功能。此功能自动传递来自Web服务的响应。

在您的成功功能中,您调用response.documentElement.localName,它会为您提供int,因为您的回复中唯一的内容是一个整数

请参阅.documentElement.localName

答案 1 :(得分:0)

使用jQuery的ajax()函数,您可以指定您希望从服务器返回的格式。您可以使用dataType关键字设置该期望。默认是智能猜测,因此它会尝试从响应中生成xml,json,script或html。如果没有人可以猜到,你会得到一个字符串。

要获取http返回码,请使用statusCode关键字,该关键字应为JSON,HTTP代码作为键,并作为值运行。例如:

$.ajax({
  statusCode: {
    404: function() {
      alert( "page not found" );
    }
  }
});

至于成功领域,文档非常具体:

  

<强>成功

     

类型:功能(任何数据,字符串textStatus,jqXHR jqXHR)

     

请求成功时要调用的函数。功能得到   传递了三个参数:从服务器返回的数据,格式化   根据dataType参数或dataFilter回调   功能(...)

考虑在http://api.jquery.com/jquery.ajax/

阅读jQuery的ajax函数的整个文档