原型 - AJAX Response() 方法



此 AJAX Ajax.Response 是作为所有 Ajax 请求回调的第一个参数传递的对象。

这是围绕原生 xmlHttpRequest 对象的包装器。它规范化了跨浏览器问题,同时通过 responseJSON 和 headerJSON 属性添加了对 JSON 的支持。

Ajax.Response 对象的属性

属性 类型 描述
状态 数字 服务器发送的 HTTP 状态代码。
statusText 字符串 服务器发送的 HTTP 状态文本。
readyState 数字 请求的当前状态。0 对应于“未初始化”,1 对应于“加载中”,2 对应于“已加载”,3 对应于“交互式”和 4 对应于“完成”。
responseText 字符串 响应的文本主体。
responseXML

文档对象

或空

如果请求的内容类型设置为 application/xml,则为响应的 XML 主体。否则为 null。
responseJSON

对象,数组

或空

如果请求的内容类型设置为 application/json,则为响应的 JSON 主体。否则为 null。
headerJSON

对象,数组

或空

如果存在,则为 X-JSON 标头的自动评估内容。否则为 null。这对于传输少量数据很有用。
请求 对象 请求对象本身(Ajax.Request 或 Ajax.Updater 的实例)。
传输 对象 原生 xmlHttpRequest 对象本身。

例子

以下示例演示了 statusresponseText 属性的用法 -

<html>
   <head>
      <title>Prototype examples</title>
      <script type = "text/javascript" src = "/javascript/prototype.js"></script>
      
      <script>
         function SubmitRequest() {
            new Ajax.Request('/cgi-bin/ajax.cgi', {
               method: 'get',
               onSuccess: successFunc,
               onFailure:  failureFunc
            });
         }
         function successFunc(response) {
            if (200 == response.status) {
               alert("Call is success");
            }
            var container = $('notice');
            var content = response.responseText;
            container.update(content);
         }
         function failureFunc(response) {
            alert("Call is failed" );
         }
      </script>
   </head>

   <body>
      <p>Click submit button to see how current notice changes.</p>
      <br />
 
      <div id = "notice">Current Notice</div>
      <br />
      <br />
      <input type = "button" value = "Submit" onclick = "SubmitRequest();"/>
   </body>
</html>

以下是 ajax.cgi 的内容。

#!/usr/bin/perl

print "Content-type: text/html\n\n";

print "This content is returned by AJAX cgi 
"; print "Current Time " . localtime;

输出

Ajax.Response 对象的方法

方法 类型 描述
getHeader(name)

字符串或

如果存在,则返回请求标头的值。否则为 null。
getAllHeaders()

字符串或

返回一个包含所有标头(以换行符分隔)的字符串。
getResponseHeader(name) 字符串 如果存在,则返回请求标头的值。否则抛出错误。这只是围绕 xmlHttpRequest 对象的原生方法的包装器。更喜欢它更短的对应物 getHeader。
getAllResponseHeaders() 字符串 返回一个包含所有标头(以换行符分隔)的字符串。否则抛出错误。这只是围绕 xmlHttpRequest 对象的原生方法的包装器。更喜欢它更短的对应物 getAllHeaders。

例子

以下示例演示了 getAllHeaders()getResponseHeader(name) 方法的用法 -

<html>
   <head>
      <title>Prototype examples</title>
      <script type = "text/javascript" src = "/javascript/prototype.js"></script>
      
      <script>
         function SubmitRequest() {
            new Ajax.Request('/cgi-bin/ajax.cgi', {
               method: 'get',
               onSuccess: successFunc
            });
         }
         function successFunc(response) {
            var content = response.getAllHeaders();
            var container = $(header1);
            container.update(content);
            var content = response.getResponseHeader('Content-Type');
            var container = $(header2);
            container.update(content);
         }
      </script>
   </head>

   <body>
      <p>Click submit button to see the result:</p>
      <br />
 
      <div id = "header1">All Headers</div>
      <div id = "header2">Content Type</div>
      <br />
      <br />
      <input type = "button" value = "Submit" onclick = "SubmitRequest();"/>
   </body>
</html>

输出

prototype_ajax_tutorial.htm
广告