Ajax的dataType屬性

dataType:預(yù)期的服務(wù)器返回的數(shù)據(jù)類型

出現(xiàn)的問題:當(dāng)設(shè)置了dataType:"json"時,如果后端返回了String,則ajax無法執(zhí)行。

前端:

$.ajax({

????dataType: "json",

????type:"post",

????url:"../delete",

????data: {

????????"id": id

????},

????success:function(result) {

? ? ? ? ? console.log(result);

????},

????error:function(msg) {

? ? ? ? alert("加載數(shù)據(jù)出錯?。?!");

????}

});

后端:

@RequestMapping(value ="/delete", method = RequestMethod.POST)

@ResponseBody

public String deleteApp(HttpServletRequest request) {

????logger.info("Delete info from table.");

????Long id= Long.parseLong(request.getParameter("id"));//獲取id

????mamMapper.deleteApp(id);????//通過mybatis來刪除數(shù)據(jù)

????return "success";????//返回一個數(shù)據(jù),來刷新前端的列表,注意這里,返回了字符串

}

解釋:后端直接返回了"success"字符串,而前端期望得到j(luò)son格式的數(shù)據(jù),例如:{"result" : "success"}。從而導(dǎo)致前端無法處理接收到的數(shù)據(jù)。

解決辦法:

1.直接將dataType去掉即可,ajax會自動適配。

2.將 dataType: "json" 改為 dataType: "text" 即可。


Ajax參數(shù)的具體介紹如下:

預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,jQuery 將自動根據(jù) HTTP 包 MIME 信息來智能判斷,比如 XML MIME 類型就被識別為 XML。在 1.4 中,JSON 就會生成一個 JavaScript 對象,而 script 則會執(zhí)行這個腳本。隨后服務(wù)器端返回的數(shù)據(jù)會根據(jù)這個值解析后,傳遞給回調(diào)函數(shù)??捎弥?

"xml": 返回 XML 文檔,可用 jQuery 處理。

"html": 返回純文本 HTML 信息;包含的 script 標(biāo)簽會在插入 dom 時執(zhí)行。

"script": 返回純文本 JavaScript 代碼。不會自動緩存結(jié)果。除非設(shè)置了 "cache" 參數(shù)。注意:在遠(yuǎn)程請求時(不在同一個域下),所有 POST 請求都將轉(zhuǎn)為 GET 請求。(因為將使用 DOM 的 script標(biāo)簽來加載)

"json": 返回 JSON 數(shù)據(jù) 。

"jsonp": JSONP 格式。使用 JSONP 形式調(diào)用函數(shù)時,如 "myurl?callback=?" jQuery 將自動替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。

"text": 返回純文本字符串

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容