weblogic下通過(guò)ajax解析不了xml文件(通過(guò)IE可能是可以打開(kāi)的),這是因?yàn)閤mlhttp.responseXML.documentElement返回空造成的,
這個(gè)問(wèn)題原因分兩種情況:
1.動(dòng)態(tài)生成文件需要通過(guò)respnse.setContentType("text/xml;charset=UTF-8")來(lái)顯示的聲明文檔類型;
2.靜態(tài)xml,這需要在web.xml中加入下面的聲明
<mime-mapping>
<extension>xml</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
這時(shí)再次訪問(wèn)時(shí)weblgoic就給加上contentType了。
注意此時(shí)如果以前訪問(wèn)過(guò)一次這個(gè)靜態(tài)的xml,ie會(huì)緩存,所以一般設(shè)置完后ajax還是不能解析,這時(shí)
需要清除ie緩存,然后再試一次就ok了:)。
對(duì)于直接通過(guò)在ie下打開(kāi)文件,比如word(xml也是一樣的),默認(rèn)weblogic訪問(wèn)xxx.doc時(shí)返回如下的響應(yīng),沒(méi)有contentType
HTTP/1.1 200 OK
Date: Thu, 25 Oct 2007 07:22:26 GMT
Content-Length: 10752
Last-Modified: Thu, 25 Oct 2007 07:20:04 GMT
Accept-Ranges: bytes
所以也需要在web.xml加入mime-type才行
<mime-mapping>
<extension>doc</extension>
<mime-type>application/msword</mime-type>
</mime-mapping>
這時(shí)weblogic的響應(yīng)信息:
200 OK
Date: Thu, 25 Oct 2007 07:28:38 GMT
Content-Length: 10752
Content-Type: application/msword
Last-Modified: Thu, 25 Oct 2007 07:20:04 GMT
Accept-Ranges: bytes
這樣可以通過(guò)提示用戶打開(kāi)還是保存,而不是一堆亂碼了。
對(duì)于下載的需求,可以在servlet設(shè)置response的header
response.setHeader("Content-Disposition","attachment;filename=xxx.xxx");
關(guān)于Content-Disposition的說(shuō)明:http://www.ietf.org/rfc/rfc2183.txt
界面可以通過(guò)<a href="download?file=xxx">下載</a>實(shí)現(xiàn)