原型 - 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 对象本身。 |
例子
以下示例演示了 status 和 responseText 属性的用法 -
<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
广告