JQuery Ajax 發送請求成功后卻接收不到任何響應數據問題


問題描述

使用 JQuery Ajax 向后端服務器發送請求,服務器也收到請求返回了響應數據,但是 Ajax 卻收不到任何響應數據。

舉例如下:

$.ajax({   
  type: "post",   
  url: "test",    
  data: {name: "張三"}, 
  dataType: "json", 
  success: function(data) {   
    alert("正確");
  },

  error: function(err) {  
    alert("錯誤");   
  }
});

以上代碼中,服務器正常響應 Ajax 請求,但客戶端中正確和錯誤窗口都沒有彈出。

原因分析

問題原因在於服務器返回的響應數據其實並非 json 格式,而在 ajax 中指定了 dataType: "json", 導致無法解析響應的數據。

為何會如此呢?

原因如果服務器響應的數據本身就是一個 Stgring 字符串類型,就不會解析為 json 串,而是直接就是 text 文本類型發送給客戶端。

解決方法

將 json 改為 text,修改后的代碼如下:

$.ajax({   
  type: "post",   
  url: "test",    
  data: {name: "張三"}, 
  dataType: "text", 
  success: function(data) {   
    alert("正確");
  },

  error: function(err) {  
    alert("錯誤");   
  }
});

所以,這里 dataType:"text" 就是將響應數據設置為 text 類型。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM