{"id":61,"date":"2007-09-08T11:15:34","date_gmt":"2007-09-08T03:15:34","guid":{"rendered":"http:\/\/www.cnmiss.cn\/?p=60"},"modified":"2010-12-02T06:31:28","modified_gmt":"2010-12-02T06:31:28","slug":"asp-%e5%88%a9%e7%94%a8-xmlhttp-%e5%88%86%e5%9d%97%e4%b8%8a%e4%bc%a0%e6%96%87%e4%bb%b6","status":"publish","type":"post","link":"https:\/\/www.cnmiss.cn\/?p=61","title":{"rendered":"Asp \u5229\u7528 xmlhttp \u5206\u5757\u4e0a\u4f20\u6587\u4ef6"},"content":{"rendered":"<p>\u601d\u8def:\u628a\u672c\u5730\u6587\u4ef6\u5728\u5ba2\u6237\u7aef\u901a\u8fc7base64\u7f16\u7801\u4ee5\u540e\u53d1\u9001\u76ee\u7684\u5730.<br \/>\u6d4b\u8bd5\u8fc7\u7a0b\u4e2d,\u4e0a\u4f20\u6587\u4ef6\u8fc7\u5927,\u5bfc\u81f4\u8d85\u65f6\u4e0d\u6210\u529f.<br \/>\u540e\u6765\u7ecf\u8fc7\u6539\u5584.\u628a\u7f16\u7801\u5206\u6bb5\u53d1\u9001.\u6d4b\u8bd520M\u6210\u529f<\/p>\n<p>\u76ee\u7684:\u5728\u4f20\u7edf\u7684\u89e3\u51b3\u65b9\u6848\u91cc\u9762,\u4e00\u6b21\u4e00\u6b21\u9009\u53d6\u4e0a\u4f20\u53ef\u4ee5.\u4f46\u662f\u5728\u78b0\u5230\u628a\u6570\u636e\u5e93\u91cc\u6587\u4ef6\u8def\u5f84\u8bfb\u51fa\u6765,\u5e76\u628a\u8fd9\u4e9b\u6587\u4ef6\u4e0a\u4f20\u5230\u4e00\u4e2a\u5730\u65b9\u7684\u65f6\u5019\u5c31\u6bd4\u8f83\u9ebb\u70e6.<br \/>\u5982\u679c\u5f97\u5230\u8def\u5f84\u4e00\u4e2a\u4e00\u4e2a\u53bb\u627e\u5230\u7528ftp\u5f53\u7136\u4e5f\u662f\u53ef\u4ee5\u7684,\u4f46\u6bcf\u6b21\u627e\u8fd9\u4e9b\u6587\u4ef6\u6211\u770b\u90fd\u4f1a\u6bd4\u8f83\u8d39\u65f6\u3002\u8fd9\u91cc\u7f16\u5199\u8fd9\u4e2a\u4e3b\u8981\u5c31\u662f\u4e3a\u4e86\u901a\u8fc7\u6570\u636e\u5e93\u91cc\u7684\u6587\u4ef6\u8def\u5f84\u53d6\u5f97\u6587\u4ef6.\u628a\u6587\u4ef6\u4e00\u6b21\u6279\u91cf\u4e0a\u4f20\u5230\u4e00\u4e2a\u5730\u65b9.<br \/>\u5176\u4e3b\u8981\u76ee\u7684\u8fd8\u662f\u4e3a\u4e86\u953b\u70bc\u4e00\u4e0b\u81ea\u5df1. <\/p>\n<p>\u8fc7\u7a0b:\u8d77\u521d\u8bd5\u7740\u7528\u6a21\u62df\u952e\u76d8\u8f93\u5165\u5f3a\u884c\u8d4b\u503c\u7ed9file\u63a7\u4ef6\u7528\u4f20\u7edf\u7684\u65b9\u6cd5\u4e0a\u4f20\u3002\u53ef\u662f\u8001\u78b0\u5230\u7a7a\u503c\u7684\u60c5\u51b5\uff0c\u4ee5\u81f3\u6709\u5f88\u591a\u6587\u4ef6\u6ca1\u6709\u53d1\u9001\u51fa\u53bb\u3002\u67e5\u9605\u4e00\u4e9b\u8d44\u6599,\u73b0\u5728\u662f\u628a\u6240\u6709\u8def\u5f84\u901a\u8fc7\u6570\u636e\u5e93\u53d6\u5230\u7136\u540e\u5199\u5230\u4e00\u4e2ajs\u91cc\u3002\u7136\u540e\u5728\u524d\u53f0\u7528js\u8bfb\u53d6\u8fd9\u4e9b\u8def\u5f84,\u901a\u8fc7xmlhttp\u6765\u53d1\u9001\u6587\u4ef6\u3002<br \/>\u56e0\u4e3aie\u4e0d\u592a\u559c\u6b22xmlHttp.\u603b\u8ba4\u4e3a\u4ed6\u6709\u6076\u610f\u884c\u4e3a.\u6240\u4ee5\u8001\u8c08\u51fa\u63d0\u793a\u8b66\u544a.\u6240\u4ee5\u64cd\u4f5c\u7684\u65f6\u5019\u4e0d\u80fd\u4f7f\u7528web\u8def\u5f84.\u53ea\u80fd\u7528\u7269\u7406\u8def\u5f84\u53bb\u8bbf\u95ee\u5b83.<br \/>\u7136\u540e\u670d\u52a1\u7aef\u6709\u4e00\u6587\u4ef6\u6765\u63a5\u6536\u8fd9\u4e9b\u7f16\u7801,\u5e76\u5bf9\u5176\u8fdb\u884c\u89e3\u7801.\u6240\u4ee5\u6211\u79f0\u4e4b\u4e3a&quot;c\/s&quot;. ^_^<\/p>\n<p>\u7b80\u5355\u4ecb\u7ecd\u4e00\u4e0b:<\/p>\n<p>aryFiles.push(&quot;c:\\\\aaa.zip&quot;) ;<br \/>aryFiles.push(&quot;c:\\\\bbb.exe&quot;) ;<br \/>\u8fd9\u91cc\u4e3a\u6587\u4ef6\u8def\u5f84\u548c\u6587\u4ef6.\u53ef\u4e3a\u591a\u4e2a<br \/>\u4ee5\u540e\u8fd9\u4e2a\u8def\u5f84\u4e5f\u53ef\u4ee5\u901a\u8fc7file\u63a7\u4ef6\u5728\u5ba2\u6237\u7aef\u53d6\u5230<\/p>\n<p>http:\/\/ www.xxx.com\/xxx\/xxx.asp<br \/>\u8fd9\u4e2a\u662f\u76ee\u7684\u5730,\u53ef\u4ee5\u6539\u4e3a\u81ea\u5df1\u60f3\u8981\u7684\u5730\u5740.<\/p>\n<p>ado_stream.LoadFromFile(server.mappath(&quot;.&quot;) &#038;&quot;\/&quot;&#038; + str_filename) <br \/>server.mappath(&quot;.&quot;) &#038;&quot;\/&quot;&#038; + str_filename \u8fd9\u91cc\u662f\u8bfb\u53d6\u6587\u4ef6.<br \/>server.mappath(&quot;.&quot;) &#038;&quot;\/&quot;&#038; \u8def\u5f84\u548c\u5b58\u653e\u8def\u5f84\u4e00\u81f4<\/p>\n<p>ado_stream.SaveToFile server.mappath(&quot;.&quot;) &#038;&quot;\/&quot;&#038; str_filename,2 <br \/>server.mappath(&quot;.&quot;) &#038;&quot;\/&quot;&#038; \u8fd9\u4e2a\u4e3a\u5b58\u653e\u6587\u4ef6\u7684\u8def\u5f84. str_filename \u4e3a\u6587\u4ef6\u540d<\/p>\n<p>\u8fd9\u91cc\u8bfb\u53d6\u548c\u5b58\u653e\u90fd\u662f\u653e\u5728\u7a0b\u5e8f\u6240\u653e\u76ee\u5f55\u4e2d.\u5927\u5bb6\u6d4b\u8bd5\u7684\u65f6\u5019\u4e5f\u53ef\u4ee5\u4fdd\u6301\u8fd9\u6837\u5373\u53ef<\/p>\n<p>\u628a\u7b2c\u4e00\u6bb5\u4ee3\u7801\u653e\u5230\u672c\u5730(eg:c:\\upload.htm)<\/p>\n<p>\u628a\u7b2c\u4e8c\u6bb5\u4ee3\u7801\u653e\u5230\u670d\u52a1\u5668\u4e0a,\u53ef\u4ee5\u662f\u672c\u5730\u670d\u52a1\u5668,\u53ef\u4ee5\u662f\u516c\u7f51\u670d\u52a1\u5668.\u548c\u4e0a\u9762\u7684\u76ee\u7684\u5730\u4fdd\u6301\u4e00\u81f4<br \/>(eg:http:\/\/www.xxx.com\/upload.asp or http:\/\/ localhost\/www\/upload.asp)<\/p>\n<p>\u64cd\u4f5c:\u627e\u5230\u7b2c\u4e00\u6bb5\u4ee3\u7801\u4fdd\u5b58\u7684\u5730\u65b9\u3002\u6267\u884c\u5373\u53ef(eg:\u6253\u5f00c\u76d8\u6267\u884cupload.htm)<\/p>\n<p>\u76ee\u524d\u7a0b\u5e8f\u8fd8\u5728\u8c03\u8bd5\u8fc7\u7a0b\u4e2d,\u5e0c\u671b\u5927\u5bb6\u63d0\u51fa\u5b9d\u8d35\u610f\u89c1<br \/>\u5ba2\u6237\u7aef\u4ee3\u7801<\/p>\n<blockquote><p>&lt;html&gt;<br \/>&lt;head&gt;<br \/>&lt;\/head&gt;<br \/>&lt;body&gt; &lt;input type=button onclick=&quot;BeginSendFiles();&quot;<br \/>value=&quot;\u53d1\u9001&quot; \/&gt; &lt;input type=button onclick=&quot;JavaScript:<br \/>Breaked=true;&quot; value=&quot;\u4e2d\u65ad&quot; \/&gt; &lt;div id=&quot;ddd&quot;<br \/>width=300px&gt;&lt;\/div&gt; &lt;br&gt;&lt;\/br&gt; &lt;DIV<br \/>id=div_message&gt;&lt;\/DIV&gt;<br \/>&lt;\/body&gt;<br \/>&lt;script language=VBScript&gt; Function bytes2BSTR(vIn) strReturn =<br \/>&quot;&quot; For i = 1 To LenB(vIn) ThisCharCode = AscB(MidB(vIn,i,1)) If<br \/>ThisCharCode &lt; &#038;H80 Then strReturn = strReturn &#038;<br \/>Chr(ThisCharCode) Else NextCharCode = AscB(MidB(vIn,i+1,1)) strReturn =<br \/>strReturn &#038; Chr(CLng(ThisCharCode) * &#038;H100 +<br \/>CInt(NextCharCode)) i = i + 1 End If Next bytes2BSTR = strReturn End<br \/>Function<br \/>&lt;\/script&gt;<br \/>&lt;script language=javascript&gt; var xmlhttp ; var ado_stream ; var<br \/>mFileName, mPartStart, mPartID, mPartEnd ; var SendCount ; var<br \/>BlockSize ; var Breaked ; var aryFiles ; BlockSize = 1024*100<br \/>;\/\/\u6bcf\u6b21\u53d1\u9001\u5b57\u8282\u6570 Breaked = false ; aryFiles = new Array() ; \/\/ \u5f00\u59cb\u53d1\u9001\u6587\u4ef6<br \/>function BeginSendFiles() { initAryFiles() ; SendFile(aryFiles.pop()) ;<br \/>} \/\/ \u6784\u9020\u5f85\u53d1\u9001\u6587\u4ef6\u7684\u6570\u7ec4 function initAryFiles() { aryFiles.push(&quot;c:\\\\aaa.zip&quot;)<br \/>; aryFiles.push(&quot;c:\\\\bbb.exe&quot;) ; \/\/c:\\\\aaa.zip c:\\\\bbb.exe\u672c\u5730\u6587\u4ef6<br \/>aryFiles.reverse() ;\/\/\u6587\u4ef6\u540d } function SendFile(vFullPath) { \/\/ \u7a7a\u6587\u4ef6\u5219\u4e0d\u6267\u884c\u4e0a\u4f20<br \/>if (!vFullPath) { return ; } Breaked = false ; div_message.innerHTML =<br \/>&quot;&quot; ; ado_stream = new ActiveXObject(&quot;ADODB.Stream&quot;); \/\/ \u8bfb\u53d6\u6587\u4ef6\u7684\u6d41<br \/>ado_stream.Type = 1; ado_stream.Open();<br \/>ado_stream.LoadFromFile(vFullPath); \/\/ \u8bfb\u53d6\u6587\u4ef6 ado_stream.position = 0 ;<br \/>SendCount = Math.ceil(ado_stream.size\/BlockSize) ; \/\/ \u5982\u679c\u6709\u4f59\u6570\u5219\u591a\u53d1\u9001\u4e00\u6b21 \/\/<br \/>alert(SendCount) ; var reg = \/\\b\\w+.\\w+$\/gi mFileName =<br \/>reg.exec(vFullPath) ; mPartStart = true ; mPartID = 1 ; mPartEnd =<br \/>false ; SendData() ; } function SendData() { if (SendCount &gt; 0) {<br \/>var dom = new ActiveXObject(&quot;msxml2.DOMDocument&quot;); \/\/ \u53d1\u9001\u7684xml\u6587\u4ef6<br \/>dom.async = false; dom.resolveExternals = false; \/\/ \u6784\u9020xml\u6587\u4ef6\u5934 var node =<br \/>dom.createProcessingInstruction(&quot;xml&quot;,&quot;version=&#39;1.0&#39;&quot;);<br \/>dom.appendChild(node) ; node = null ; \/\/ \u6784\u9020root\u8282\u70b9 var root =<br \/>dom.createElement(&quot;root&quot;); dom.appendChild(root) ;<br \/>dom.documentElement.setAttribute(&quot;xmlns:dt&quot;,<br \/>&quot;urn:schemas-microsoft-com:datatypes&quot;); \/\/ \u6784\u9020\u4fdd\u5b58\u4e8c\u8fdb\u5236\u6570\u636e\u7684\u8282\u70b9updata node =<br \/>dom.createElement(&quot;upData&quot;) ; node.dataType = &quot;bin.base64&quot; ; \/\/<br \/>bin\u3002base64\u7f16\u7801 var att = dom.createAttribute(&quot;FileName&quot;) ; \/\/ \u6587\u4ef6\u540d\u5c5e\u6027<br \/>att.value = mFileName ; node.setAttributeNode(att) ; att = null ; var<br \/>att = dom.createAttribute(&quot;PartStart&quot;) ; \/\/ \u5206\u6bb5\u5f00\u59cb\u6807\u8bb0 att.value =<br \/>mPartStart ; node.setAttributeNode(att) ; att = null ; var att =<br \/>dom.createAttribute(&quot;PartID&quot;) ; \/\/ \u5206\u6bb5\u5e8f\u53f7 att.value = mPartID ;<br \/>node.setAttributeNode(att) ; att = null ; var att =<br \/>dom.createAttribute(&quot;PartEnd&quot;) ; \/\/ \u5206\u6bb5\u7ed3\u675f\u6807\u8bb0 att.value = mPartEnd ;<br \/>node.setAttributeNode(att) ; att = null ; root.appendChild(node) ;<br \/>node.nodeTypedValue = ado_stream.Read(BlockSize); \/\/ \u8282\u70b9\u6570\u636e\u4ecestream\u8bfb\u53d6\uff0c\u56fa\u5b9a\u957f\u5ea6<br \/>node = null ; SendCount -= 1 ; xmlhttp = new<br \/>ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);<br \/>xmlhttp.open(&quot;POST&quot;,&quot;http&#58;\/\/www.xxx.com\/xxx\/xxx.asp&quot;, false);<br \/>\/\/http&#58;\/\/www.xxx.com\/xxx\/xxx.asp \u4e3aweb\u8def\u5f84\u4e0a\u7684\u6587\u4ef6 xmlhttp.onreadystatechange=<br \/>CallBack ; xmlhttp.send(dom); mPartStart = false ; xmlhttp = null ; }<br \/>else { ado_stream.Close(); ado_stream = null ; } } function CallBack()<br \/>{ \/\/ \u4e0a\u4f20\u6210\u529f if(xmlhttp.readystate == 4) { \/\/ \u68c0\u67e5\u662f\u5426\u4e2d\u65ad\u4e0a\u4f20 if(Breaked) {<br \/>return ; } if (SendCount &gt; 0) { mPartID += 1 ; \/\/<br \/>div_message.innerHTML += (&quot;&lt;br&gt;&quot; + xmlhttp.ResponseText) ; var p<br \/>= Math.floor((mPartID\/(Math.ceil(ado_stream.size\/BlockSize) + 1)) *<br \/>100) ; \/\/ \u8ba1\u7b97\u8fdb\u5ea6\u767e\u5206\u6bd4 ShowBar(p) ; var t = setTimeout(&quot;SendData();&quot;, 1) ; }<br \/>else { \/\/ \u4f20\u9001\u5b8c\u6587\u4ef6 \/\/div_message.innerHTML += mFileName +<br \/>&quot;\u4f20\u9001\u5b8c\u6bd5\uff01&lt;br&gt;&quot; ; \/\/ \u7ee7\u7eed\u4f20\u4e0b\u4e00\u6587\u4ef6 ShowBar(0) ; var cFile = aryFiles.pop()<br \/>; SendFile(cFile) ; } } } function ShowBar(per) { \/\/ \u8fdb\u5ea6\u6761 ddd.innerHTML<br \/>= &quot;&lt;table width=&#39;200&#39; border=0 cellpadding=&#39;0&#39; cellspacing=&#39;0&#39;<br \/>&gt;&lt;tr&gt;&lt;td bgcolor=&#39;#6699FF&#39;&gt;&lt;input type=button style=&#39;<br \/>width:&quot; + per + &quot;% ; border:0px; background:#005599; color:#FFFFFF&#39;<br \/>value=&quot; + per + &quot;%&gt; &lt;\/td&gt;&lt;\/tr&gt;&lt;\/table&gt;&quot; ; }<br \/>&lt;\/script&gt;<br \/>&lt;\/html&gt;<\/p><\/blockquote>\n<p>\u670d\u52a1\u7aef\u4ee3\u7801<\/p>\n<blockquote><p>&lt;%@ LANGUAGE=VBScript%&gt; <br \/>&lt;% Option Explicit <br \/>Response.Expires = 0  <\/p>\n<p>&#39; \u5b9a\u4e49\u53d8\u91cf\u548c\u5bf9\u8c61\u3002 <br \/>dim ado_stream <br \/>dim xml_dom <br \/>dim xml_data <br \/>dim str_filename<br \/>dim bol_PartStart<br \/>dim int_PartID<br \/>dim bol_PartEnd <\/p>\n<p>&#39; \u521b\u5efa Strea<\/p>\n<p>m \u5bf9\u8c61 <br \/>set ado_stream = Server.CreateObject(&quot;ADODB.Stream&quot;) <br \/>&#39; \u4eceRequest\u5bf9\u8c61\u521b\u5efa XMLDOM\u5bf9\u8c61 <br \/>set xml_dom = Server.CreateObject(&quot;MSXML2.DOMDocument&quot;) <br \/>xml_dom.load(request) <br \/>&#39; \u8bfb\u51fa\u5305\u542b\u4e8c\u8fdb\u5236\u6570\u636e\u7684\u8282\u70b9 <br \/>set xml_data = xml_dom.selectSingleNode(&quot;root\/upData&quot;) <br \/>str_filename = xml_data.getAttribute(&quot;FileName&quot;)<br \/>bol_PartStart = CBool(xml_data.getAttribute(&quot;PartStart&quot;))<br \/>int_PartID = CInt(xml_data.getAttribute(&quot;PartID&quot;))<br \/>bol_PartEnd = CBool(xml_data.getAttribute(&quot;PartEnd&quot;))<\/p>\n<p>&#39; \u6253\u5f00Stream\u5bf9\u8c61\uff0c\u628a\u6570\u636e\u5b58\u5165\u5176\u4e2d  <br \/>ado_stream.Type = 1 &#39; 1=adTypeBinary  <br \/>ado_stream.open  <br \/>if not bol_PartStart then<br \/>       ado_stream.LoadFromFile(server.mappath(&quot;.&quot;) &#038;&quot;\/&quot;&#038; + str_filename)          &#39; \u8bfb\u53d6\u6587\u4ef6<br \/>       ado_stream.position = ado_stream.size <br \/>end if<br \/>ado_stream.Write xml_data.nodeTypedValue <br \/>&#39; \u6587\u4ef6\u5b58\u76d8 <br \/>ado_stream.SaveToFile server.mappath(&quot;.&quot;) &#038;&quot;\/&quot;&#038; str_filename,2 <br \/>&#39;\u4fdd\u5b58\u6587\u4ef6 2=adSaveCreateOverWrite  <br \/>ado_stream.close <\/p>\n<p>&#39; \u91ca\u653e\u8d44\u6e90 <br \/>set ado_stream = Nothing  <br \/>set xml_dom = Nothing <br \/>&#39; \u5411\u6d4f\u89c8\u5668\u8fd4\u56de\u4fe1\u606f <br \/>Response.Write &quot;Upload successful!&quot;&#038; str_filename &#038; int_PartID &#038; bol_PartStart<br \/>%&gt;<\/p><\/blockquote>\n<p>\u53e6\u5916\uff1a\u6b64\u6587\u7684\u76ee\u7684\u5e76\u4e0d\u662f\u8bf4\u8fd9\u4e2a\u7a0b\u5e8f\u80fd\u7ed9\u670b\u53cb\u4eec\u89e3\u51b3\u4ec0\u4e48\u95ee\u9898\uff0c\u4e3b\u8981\u76ee\u7684\u8fd8\u662f\u4e3a\u4e86\u548c\u5927\u5bb6\u4ea4\u6d41\u4e00\u4e9b\u5fc3\u5f97\uff1a<br \/>\u78b0\u5230\u95ee\u9898-&gt;\u53d1\u73b0\u95ee\u9898-&gt;\u89e3\u51b3\u95ee\u9898.<br \/>\u5e0c\u671b\u5927\u5bb6\u90fd\u4e0d\u8981\u6210\u4e3a\u4e00\u4e2a\u6807\u51c6\u7684\u4ee3\u7801\u673a\u5668\u4eba\u3002<br \/>\u591a\u5b66\u3001\u591a\u770b\u3001\u591a\u601d\u8003\u3001\u591a\u5b9e\u8df5\u3002<br \/>\u6ca1\u6709\u4ec0\u4e48\u662f\u4e0d\u80fd\u89e3\u51b3\u7684\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u601d\u8def:\u628a\u672c\u5730\u6587\u4ef6\u5728\u5ba2\u6237\u7aef\u901a\u8fc7base64\u7f16\u7801\u4ee5\u540e\u53d1\u9001\u76ee\u7684\u5730.\u6d4b\u8bd5\u8fc7\u7a0b\u4e2d,\u4e0a\u4f20\u6587\u4ef6 &hellip; <a href=\"https:\/\/www.cnmiss.cn\/?p=61\">\u7ee7\u7eed\u9605\u8bfb <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[13],"class_list":["post-61","post","type-post","status-publish","format-standard","hentry","category-xxbj","tag-asp"],"_links":{"self":[{"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=\/wp\/v2\/posts\/61","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=61"}],"version-history":[{"count":0,"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=\/wp\/v2\/posts\/61\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=61"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=61"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cnmiss.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=61"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}