關於firefox(火狐)瀏覽器中ajax請求返回data時出現[object XMLDocument]的情況的分析
阿新 • • 發佈:2019-02-20
本來我們使用ajax來非同步處理資料時,有時候需要返回data,這時候我們在service(action)中使用下面的程式碼完成返回:
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("UTF-8");
response.getWriter().write("使用者名稱存在!");
然後我們在js檔案中使用:
$("#existVerify").text("("+data+")");
$("#existVerify").show();
來獲取後臺寫入的資料,這時候我們在google中測試,發現多好著呢,效果如下截圖:
但是我們都知道做前臺都要測試多個瀏覽器,當我們使用firefox(火狐)測試時發現,效果確實如下圖所示:
這時候我們就很痛苦了,為什麼這裡不顯示呢,但是可以肯定的是已經能獲取資料了,只是好像格式不對,哪裡出了問題呢?發現原來是在後臺寫入時,即當我們write時,沒有設定response的返回值型別,它就預設為html,但是火狐瀏覽器不認識,所以只能解釋為object XMLDocument,為了解決問題,我們只需要給response設定以下的內容即可: response.setContentType("text/plain");這樣程式就知道了返回的型別為text型別,這樣問題就解決了。
但是我們都知道做前臺都要測試多個瀏覽器,當我們使用firefox(火狐)測試時發現,效果確實如下圖所示:
這時候我們就很痛苦了,為什麼這裡不顯示呢,但是可以肯定的是已經能獲取資料了,只是好像格式不對,哪裡出了問題呢?發現原來是在後臺寫入時,即當我們write時,沒有設定response的返回值型別,它就預設為html,但是火狐瀏覽器不認識,所以只能解釋為object XMLDocument,為了解決問題,我們只需要給response設定以下的內容即可: response.setContentType("text/plain");這樣程式就知道了返回的型別為text型別,這樣問題就解決了。