{"id":345,"date":"2005-10-27T14:14:16","date_gmt":"2005-10-27T02:14:16","guid":{"rendered":""},"modified":"2005-10-27T14:14:16","modified_gmt":"2005-10-27T02:14:16","slug":"","status":"publish","type":"post","link":"https:\/\/www.mudone.com\/?p=345","title":{"rendered":"AJAX\u57fa\u7840\u6559\u7a0b"},"content":{"rendered":"<p>\u3000\u3000\u8fd9\u7bc7\u6587\u7ae0\u5c06\u5e26\u60a8\u6d4f\u89c8\u6574\u4e2aAJAX\u7684\u57fa\u672c\u6982\u8c8c,\u5e76\u5c55\u793a\u4e24\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\u8ba9\u60a8\u8f7b\u677e\u4e0a\u8def. <\/p>\n<p>\u3000\u3000\u4ec0\u4e48\u662f AJAX?<br \/>\n\u3000\u3000AJAX (\u5f02\u6b65 JavaScript \u548c XML) \u662f\u4e2a\u65b0\u4ea7\u751f\u7684\u672f\u8bed,\u4e13\u4e3a\u63cf\u8ff0JavaScript\u7684\u4e24\u9879\u5f3a\u5927\u6027\u80fd.\u8fd9\u4e24\u9879\u6027\u80fd\u5728\u591a\u5e74\u6765\u4e00\u76f4\u88ab\u7f51\u7edc\u5f00\u53d1\u8005\u6240\u5ffd\u7565,\u76f4\u5230\u6700\u8fd1Gmail, Google suggest\u548cgoogle Maps\u7684\u6a2a\u7a7a\u51fa\u4e16\u624d\u4f7f\u4eba\u4eec\u5f00\u59cb\u610f\u8bc6\u5230\u5176\u91cd\u8981\u6027. <\/p>\n<p>\u3000\u3000\u8fd9\u4e24\u9879\u88ab\u5ffd\u89c6\u7684\u6027\u80fd\u662f:<br \/>\n\u3000\u3000\u65e0\u9700\u91cd\u65b0\u88c5\u8f7d\u6574\u4e2a\u9875\u9762\u4fbf\u80fd\u5411\u670d\u52a1\u5668\u53d1\u9001\u8bf7\u6c42.<br \/>\n\u3000\u3000\u5bf9XML\u6587\u6863\u7684\u89e3\u6790\u548c\u5904\u7406\uff0e<\/p>\n<p><b>\u6b65\u9aa4 1 \u2013 &quot;\u8bf7!&quot; &#8212; \u5982\u4f55\u53d1\u9001\u4e00\u4e2aHTTP\u8bf7\u6c42<\/b><\/p>\n<p>\u3000\u3000\u4e3a\u4e86\u7528JavaScript\u5411\u670d\u52a1\u5668\u53d1\u9001\u4e00\u4e2aHTTP\u8bf7\u6c42, \u9700\u8981\u4e00\u4e2a\u5177\u5907\u8fd9\u79cd\u529f\u80fd\u7684\u7c7b\u5b9e\u4f8b. \u8fd9\u6837\u7684\u7c7b\u9996\u5148\u7531Internet Explorer\u4ee5ActiveX\u5bf9\u8c61\u5f15\u5165, \u88ab\u79f0\u4e3aXMLHTTP. \u540e\u6765Mozilla, <!--more-->Safari \u548c\u5176\u4ed6\u6d4f\u89c8\u5668\u7eb7\u7eb7\u4eff\u6548, \u63d0\u4f9b\u4e86XMLHttpRequest\u7c7b,\u5b83\u652f\u6301\u5fae\u8f6f\u7684ActiveX\u5bf9\u8c61\u6240\u63d0\u4f9b\u7684\u65b9\u6cd5\u548c\u5c5e\u6027. <\/p>\n<p>\u3000\u3000\u56e0\u6b64, \u4e3a\u4e86\u521b\u5efa\u4e00\u4e2a\u8de8\u6d4f\u89c8\u5668\u7684\u8fd9\u6837\u7684\u7c7b\u5b9e\u4f8b(\u5bf9\u8c61), \u53ef\u4ee5\u5e94\u7528\u5982\u4e0b\u4ee3\u7801: <\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">if (window.XMLHttpRequest) { \/\/ Mozilla, Safari, &#8230;<br \/>\n    http_request = new XMLHttpRequest();<br \/>\n} else if (window.ActiveXObject) { \/\/ IE<br \/>\n    http_request = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);<br \/>\n}<\/div>\n<\/div>\n<p>\u3000\u3000(\u4e0a\u4f8b\u5bf9\u4ee3\u7801\u505a\u4e86\u4e00\u5b9a\u7b80\u5316,\u8fd9\u662f\u4e3a\u4e86\u89e3\u91ca\u5982\u4f55\u521b\u5efaXMLHTTP\u7c7b\u5b9e\u4f8b. \u5b9e\u9645\u7684\u4ee3\u7801\u5b9e\u4f8b\u53ef\u53c2\u9605\u672c\u7bc7\u6b65\u9aa43.) <\/p>\n<p>\u3000\u3000\u5982\u679c\u670d\u52a1\u5668\u7684\u54cd\u5e94\u6ca1\u6709XML mime-type header,\u67d0\u4e9bMozilla\u6d4f\u89c8\u5668\u53ef\u80fd\u65e0\u6cd5\u6b63\u5e38\u5de5\u4f5c. \u4e3a\u4e86\u89e3\u51b3\u8fd9\u4e2a\u95ee\u9898, \u5982\u679c\u670d\u52a1\u5668\u54cd\u5e94\u7684header\u4e0d\u662ftext\/xml,\u53ef\u4ee5\u8c03\u7528\u5176\u5b83\u65b9\u6cd5\u4fee\u6539\u8be5header. <\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">http_request = new XMLHttpRequest();<br \/>\nhttp_request.overrideMimeType(&#39;text\/xml&#39;);<\/div>\n<\/div>\n<p>\u3000\u3000\u63a5\u4e0b\u6765\u8981\u51b3\u5b9a\u5f53\u6536\u5230\u670d\u52a1\u5668\u7684\u54cd\u5e94\u540e,\u9700\u8981\u505a\u4ec0\u4e48.\u8fd9\u9700\u8981\u544a\u8bc9HTTP\u8bf7\u6c42\u5bf9\u8c61\u7528\u54ea\u4e00\u4e2aJavaScript\u51fd\u6570\u5904\u7406\u8fd9\u4e2a\u54cd\u5e94.\u53ef\u4ee5\u5c06\u5bf9\u8c61\u7684onreadystatechange\u5c5e\u6027\u8bbe\u7f6e\u4e3a\u8981\u4f7f\u7528\u7684JavaScript\u7684\u51fd\u6570\u540d,\u5982\u4e0b\u6240\u793a: <\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">http_request.onreadystatechange = nameOfTheFunction; <\/div>\n<\/div>\n<p>\u3000\u3000\u6ce8\u610f:\u5728\u51fd\u6570\u540d\u540e\u6ca1\u6709\u62ec\u53f7,\u4e5f\u65e0\u9700\u4f20\u9012\u53c2\u6570.\u53e6\u5916\u8fd8\u6709\u4e00\u79cd\u65b9\u6cd5,\u53ef\u4ee5\u5728\u6249\u9875(fly)\u4e2d\u5b9a\u4e49\u51fd\u6570\u53ca\u5176\u5bf9\u54cd\u5e94\u8981\u91c7\u53d6\u7684\u884c\u4e3a,\u5982\u4e0b\u6240\u793a: <\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">http_request.onreadystatechange = function(){<br \/>\n    \/\/ do the thing<br \/>\n};<\/div>\n<\/div>\n<p>\u3000\u3000\u5728\u5b9a\u4e49\u4e86\u5982\u4f55\u5904\u7406\u54cd\u5e94\u540e,\u5c31\u8981\u53d1\u9001\u8bf7\u6c42\u4e86.\u53ef\u4ee5\u8c03\u7528HTTP\u8bf7\u6c42\u7c7b\u7684open()\u548csend()\u65b9\u6cd5, \u5982\u4e0b\u6240\u793a: <\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">http_request.open(&#39;GET&#39;, &#39;<a href=\"http:\/\/www.example.org\/some.file&amp;#39;,\" title=\"http:\/\/www.example.org\/some.file&amp;#39;,\" target=\"_blank\">http:\/\/www.example.org\/some.file&amp;#39;,<\/a> true);<br \/>\nhttp_request.send(null);<\/div>\n<\/div>\n<p>\u3000\u3000open()\u7684\u7b2c\u4e00\u4e2a\u53c2\u6570\u662fHTTP\u8bf7\u6c42\u65b9\u5f0f \u2013 GET, POST, HEAD \u6216\u4efb\u4f55\u670d\u52a1\u5668\u6240\u652f\u6301\u7684\u60a8\u60f3\u8c03\u7528\u7684\u65b9\u5f0f. \u6309\u7167HTTP\u89c4\u8303,\u8be5\u53c2\u6570\u8981\u5927\u5199;\u5426\u5219,\u67d0\u4e9b\u6d4f\u89c8\u5668(\u5982Firefox)\u53ef\u80fd\u65e0\u6cd5\u5904\u7406\u8bf7\u6c42.\u6709\u5173HTTP\u8bf7\u6c42\u65b9\u6cd5\u7684\u8be6\u7ec6\u4fe1\u606f\u53ef\u53c2\u8003<a href=\"http:\/\/www.w3.org\/Protocols\/rfc2616\/rfc2616-sec9.html\" title=\"http:\/\/www.w3.org\/Protocols\/rfc2616\/rfc2616-sec9.html\" target=\"_blank\">http:\/\/www.w3.org\/Protocols\/rfc2616\/rfc2616-sec9.html<\/a> W3C specs<br \/>\n\u3000\u3000\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f\u8bf7\u6c42\u9875\u9762\u7684URL.\u7531\u4e8e\u81ea\u8eab\u5b89\u5168\u7279\u6027\u7684\u9650\u5236,\u8be5\u9875\u9762\u4e0d\u80fd\u4e3a\u7b2c\u4e09\u65b9\u57df\u540d\u7684\u9875\u9762.\u540c\u65f6\u4e00\u5b9a\u8981\u4fdd\u8bc1\u5728\u6240\u6709\u7684\u9875\u9762\u4e2d\u90fd\u4f7f\u7528\u51c6\u786e\u7684\u57df\u540d,\u5426\u5219\u8c03\u7528open()\u4f1a\u5f97\u5230&quot;permission denied&quot;\u7684\u9519\u8bef\u63d0\u793a.\u4e00\u4e2a\u5e38\u89c1\u7684\u9519\u8bef\u662f\u8bbf\u95ee\u7ad9\u70b9\u65f6\u4f7f\u7528domain.tld,\u800c\u5f53\u8bf7\u6c42\u9875\u9762\u65f6,\u5374\u4f7f\u7528www.domain.tld.<br \/>\n\u3000\u3000\u7b2c\u4e09\u4e2a\u53c2\u6570\u8bbe\u7f6e\u8bf7\u6c42\u662f\u5426\u4e3a\u5f02\u6b65\u6a21\u5f0f.\u5982\u679c\u662fTRUE, JavaScript\u51fd\u6570\u5c06\u7ee7\u7eed\u6267\u884c,\u800c\u4e0d\u7b49\u5f85\u670d\u52a1\u5668\u54cd\u5e94.\u8fd9\u5c31\u662f&quot;AJAX&quot;\u4e2d\u7684&quot;A&quot;.<br \/>\n\u3000\u3000\u5982\u679c\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f&quot;POST&quot;,send()\u65b9\u6cd5\u7684\u53c2\u6570\u53ef\u4ee5\u662f\u4efb\u4f55\u60f3\u9001\u7ed9\u670d\u52a1\u5668\u7684\u6570\u636e. \u8fd9\u65f6\u6570\u636e\u8981\u4ee5\u5b57\u7b26\u4e32\u7684\u5f62\u5f0f\u9001\u7ed9\u670d\u52a1\u5668,\u5982\u4e0b\u6240\u793a: <\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">name=value&amp;anothername=othervalue&amp;so=on<\/div>\n<\/div>\n<p><b>\u6b65\u9aa4 2 \u2013 &quot;\u6536\u5230!&quot; &#8212; \u5904\u7406\u670d\u52a1\u5668\u7684\u54cd\u5e94<\/b><br \/>\n\u3000\u3000\u5f53\u53d1\u9001\u8bf7\u6c42\u65f6,\u8981\u63d0\u4f9b\u6307\u5b9a\u5904\u7406\u54cd\u5e94\u7684JavaScript\u51fd\u6570\u540d.<\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">http_request.onreadystatechange = nameOfTheFunction; <\/div>\n<\/div>\n<p>\u3000\u3000\u6211\u4eec\u6765\u770b\u770b\u8fd9\u4e2a\u51fd\u6570\u7684\u529f\u80fd\u662f\u4ec0\u4e48.\u9996\u5148\u51fd\u6570\u4f1a\u68c0\u67e5\u8bf7\u6c42\u7684\u72b6\u6001.\u5982\u679c\u72b6\u6001\u503c\u662f4,\u5c31\u610f\u5473\u7740\u4e00\u4e2a\u5b8c\u6574\u7684\u670d\u52a1\u5668\u54cd\u5e94\u5df2\u7ecf\u6536\u5230\u4e86,\u60a8\u5c06\u53ef\u4ee5\u5904\u7406\u8be5\u54cd\u5e94. <\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">if (http_request.readyState == 4) {<br \/>\n    \/\/ everything is good, the response is received<br \/>\n} else {<br \/>\n    \/\/ still not ready<br \/>\n}<\/div>\n<\/div>\n<p>\u3000\u3000readyState\u7684\u53d6\u503c\u5982\u4e0b:<br \/>\n\u3000\u30000 (\u672a\u521d\u59cb\u5316)<br \/>\n\u3000\u30001 (\u6b63\u5728\u88c5\u8f7d)<br \/>\n\u3000\u30002 (\u88c5\u8f7d\u5b8c\u6bd5)<br \/>\n\u3000\u30003 (\u4ea4\u4e92\u4e2d)<br \/>\n\u3000\u30004 (\u5b8c\u6210) <\/p>\n<p>\u3000\u3000\u63a5\u7740,\u51fd\u6570\u4f1a\u68c0\u67e5HTTP\u670d\u52a1\u5668\u54cd\u5e94\u7684\u72b6\u6001\u503c. \u5b8c\u6574\u7684\u72b6\u6001\u53d6\u503c\u53ef\u53c2\u89c1 W3C site. \u6211\u4eec\u7740\u91cd\u770b\u503c\u4e3a200 OK\u7684\u54cd\u5e94. <\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">if (http_request.status == 200) {<br \/>\n    \/\/ perfect!<br \/>\n} else {<br \/>\n    \/\/ there was a problem with the request,<br \/>\n    \/\/ for example the response may be a 404 (Not Found)<br \/>\n    \/\/ or 500 (Internal Server Error) response codes<br \/>\n}<\/div>\n<\/div>\n<p>\u3000\u3000\u5728\u68c0\u67e5\u5b8c\u8bf7\u6c42\u7684\u72b6\u6001\u503c\u548c\u54cd\u5e94\u7684HTTP\u72b6\u6001\u503c\u540e, \u60a8\u5c31\u53ef\u4ee5\u5904\u7406\u4ece\u670d\u52a1\u5668\u5f97\u5230\u7684\u6570\u636e\u4e86.\u6709\u4e24\u79cd\u65b9\u5f0f\u53ef\u4ee5\u5f97\u5230\u8fd9\u4e9b\u6570\u636e: <\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">http_request.responseText \u2013 \u4ee5\u6587\u672c\u5b57\u7b26\u4e32\u7684\u65b9\u5f0f\u8fd4\u56de\u670d\u52a1\u5668\u7684\u54cd\u5e94<br \/>\nhttp_request.responseXML \u2013 \u4ee5XMLDocument\u5bf9\u8c61\u65b9\u5f0f\u8fd4\u56de\u54cd\u5e94.\u5904\u7406XMLDocument\u5bf9\u8c61\u53ef\u4ee5\u7528JavaScript DOM\u51fd\u6570 <\/div>\n<\/div>\n<p><b>\u6b65\u9aa4 3 \u2013 &quot;\u4e07\u4e8b\u4ff1\u5907!&quot; &#8211; \u7b80\u5355\u5b9e\u4f8b<\/b><\/p>\n<p>\u3000\u3000\u6211\u4eec\u73b0\u5728\u5c06\u6574\u4e2a\u8fc7\u7a0b\u5b8c\u6574\u5730\u505a\u4e00\u6b21,\u53d1\u9001\u4e00\u4e2a\u7b80\u5355\u7684HTTP\u8bf7\u6c42. \u6211\u4eec\u7528JavaScript\u8bf7\u6c42\u4e00\u4e2aHTML\u6587\u4ef6, test.html, \u6587\u4ef6\u7684\u6587\u672c\u5185\u5bb9\u4e3a&quot;I&#39;m a test.&quot;.\u7136\u540e\u6211\u4eec&quot;alert()&quot;test.html\u6587\u4ef6\u7684\u5185\u5bb9. <\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">&lt;script type=&quot;text\/javascript&quot; language=&quot;javascript&quot;&gt;<br \/>\n    var http_request = false;<br \/>\n    function makeRequest(url) {<\/p>\n<p>        http_request = false;<\/p>\n<p>        if (window.XMLHttpRequest) { \/\/ Mozilla, Safari,&#8230;<br \/>\n            http_request = new XMLHttpRequest();<br \/>\n            if (http_request.overrideMimeType) {<br \/>\n                http_request.overrideMimeType(&#39;text\/xml&#39;);<br \/>\n            }<br \/>\n        } else if (window.ActiveXObject) { \/\/ IE<br \/>\n            try {<br \/>\n                http_request = new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;);<br \/>\n            } catch (e) {<br \/>\n                try {<br \/>\n                    http_request = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);<br \/>\n                } catch (e) {}<br \/>\n            }<br \/>\n        }<\/p>\n<p>        if (!http_request) {<br \/>\n            alert(&#39;Giving up \ud83d\ude41 Cannot create an XMLHTTP instance&#39;);<br \/>\n            return false;<br \/>\n        }<br \/>\n        http_request.onreadystatechange = alertContents;<br \/>\n        http_request.open(&#39;GET&#39;, url, true);<br \/>\n        http_request.send(null);<\/p>\n<p>    }<\/p>\n<p>    function alertContents() {<\/p>\n<p>        if (http_request.readyState == 4) {<br \/>\n            if (http_request.status == 200) {<br \/>\n                alert(http_request.responseText);<br \/>\n            } else {<br \/>\n                alert(&#39;There was a problem with the request.&#39;);<br \/>\n            }<br \/>\n        }<\/p>\n<p>    }<br \/>\n&lt;\/script&gt;<br \/>\n&lt;span<br \/>\n    style=&quot;cursor: pointer; text-decoration: underline&quot;<br \/>\n    onclick=&quot;makeRequest(&#39;test.html&#39;)&quot;&gt;<br \/>\n        Make a request<br \/>\n&lt;\/span&gt;<\/p><\/div>\n<\/div>\n<p>\u3000\u3000\u672c\u4f8b\u4e2d:<br \/>\n\u3000\u3000\u7528\u6237\u70b9\u51fb\u6d4f\u89c8\u5668\u4e0a\u7684&quot;\u8bf7\u6c42&quot;\u94fe\u63a5;<br \/>\n\u3000\u3000\u63a5\u7740\u51fd\u6570makeRequest()\u5c06\u88ab\u8c03\u7528.\u5176\u53c2\u6570 \u2013 HTML\u6587\u4ef6test.html\u5728\u540c\u4e00\u76ee\u5f55\u4e0b;<br \/>\n\u3000\u3000\u8fd9\u6837\u5c31\u53d1\u8d77\u4e86\u4e00\u4e2a\u8bf7\u6c42.onreadystatechange\u7684\u6267\u884c\u7ed3\u679c\u4f1a\u88ab\u4f20\u9001\u7ed9alertContents();<br \/>\n\u3000\u3000alertContents()\u5c06\u68c0\u67e5\u670d\u52a1\u5668\u7684\u54cd\u5e94\u662f\u5426\u6210\u529f\u5730\u6536\u5230,\u5982\u679c\u662f,\u5c31\u4f1a&quot;alert()&quot;test.html\u6587\u4ef6\u7684\u5185\u5bb9. <\/p>\n<p><b>\u6b65\u9aa4 4 \u2013 &quot;X-\u6587\u6863&quot; &#8212; \u5904\u7406XML\u54cd\u5e94<\/b><\/p>\n<p>\u3000\u3000\u5728\u524d\u9762\u7684\u4f8b\u5b50\u4e2d,\u5f53\u670d\u52a1\u5668\u5bf9HTTP\u8bf7\u6c42\u7684\u54cd\u5e94\u88ab\u6536\u5230\u540e,\u6211\u4eec\u4f1a\u8c03\u7528\u8bf7\u6c42\u5bf9\u8c61\u7684reponseText\u5c5e\u6027.\u8be5\u5c5e\u6027\u5305\u542b\u4e86test.html\u6587\u4ef6\u7684\u5185\u5bb9.\u73b0\u5728\u6211\u4eec\u6765\u8bd5\u8bd5responseXML\u5c5e\u6027. <\/p>\n<p>\u3000\u3000\u9996\u5148,\u6211\u4eec\u65b0\u5efa\u4e00\u4e2a\u6709\u6548\u7684XML\u6587\u4ef6,\u540e\u9762\u6211\u4eec\u5c06\u4f7f\u7528\u8fd9\u4e2a\u6587\u4ef6.\u8be5\u6587\u4ef6(test.xml)\u6e90\u4ee3\u7801\u5982\u4e0b\u6240\u793a: <\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">&lt;?xml version=&quot;1.0&quot; ?&gt;<br \/>\n&lt;root&gt;<br \/>\n    I&#39;m a test.<br \/>\n&lt;\/root&gt;<\/div>\n<\/div>\n<p>\u3000\u3000\u5728\u8be5\u811a\u672c\u4e2d,\u6211\u4eec\u53ea\u9700\u4fee\u6539\u8bf7\u6c42\u90e8\u5206: <\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">&#8230;<br \/>\nonclick=&quot;makeRequest(&#39;test.xml&#39;)&quot;&gt;<br \/>\n&#8230;<\/div>\n<\/div>\n<p>\u3000\u3000\u63a5\u7740,\u5728alertContents()\u4e2d,\u6211\u4eec\u5c06alert()\u7684\u4ee3\u7801alert(http_request.responseText);\u6362\u6210: <\/p>\n<div class=\"quote\">\n<div class=\"quote-title\">\u5f15\u7528\u81ea <u><\/u><\/div>\n<div class=\"quote-content\">\u3000\u3000var xmldoc = http_request.responseXML;<br \/>\n\u3000\u3000var root_node = xmldoc.getElementsByTagName(&#39;root&#39;).item(0);<br \/>\n\u3000\u3000alert(root_node.firstChild.data);<\/div>\n<\/div>\n<p>\u3000\u3000\u8fd9\u91cc,\u6211\u4eec\u4f7f\u7528\u4e86responseXML\u63d0\u4f9b\u7684XMLDocument\u5bf9\u8c61\u5e76\u7528DOM\u65b9\u6cd5\u83b7\u53d6\u5b58\u4e8eXML\u6587\u4ef6\u4e2d\u7684\u5185\u5bb9.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u3000\u3000\u8fd9\u7bc7\u6587\u7ae0\u5c06\u5e26\u60a8\u6d4f\u89c8\u6574\u4e2aAJAX\u7684\u57fa\u672c\u6982\u8c8c,\u5e76\u5c55\u793a\u4e24\u4e2a\u7b80\u5355\u7684\u4f8b\u5b50\u8ba9\u60a8\u8f7b\u677e\u4e0a\u8def. \u3000\u3000\u4ec0\u4e48\u662f AJAX? \u3000\u3000 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[],"tags":[],"class_list":["post-345","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/www.mudone.com\/index.php?rest_route=\/wp\/v2\/posts\/345","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mudone.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mudone.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mudone.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mudone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=345"}],"version-history":[{"count":0,"href":"https:\/\/www.mudone.com\/index.php?rest_route=\/wp\/v2\/posts\/345\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mudone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mudone.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=345"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mudone.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}