java - ajax成功到后臺(tái)不知道為什么一直回調(diào)失敗函數(shù)
問(wèn)題描述
function a() {$.ajax({url : 'http://localhost:8080/ubi/checkIntegral',async : true,data:{'carOwnerID':'111111'},dataType : ’json’,type : ’GET’,success : function() { alert('ss');},error : function(map){ alert('FALSE');} });}@RequestMapping(value='/checkIntegral',method = RequestMethod.GET)@ResponseBodypublic Map<String,Long> checkIntegral(@RequestParam String carOwnerID ,HttpServletRequest request,HttpServletResponse response){ Long integral = impl.checkIntegral(Long.valueOf(carOwnerID)); Map<String,Long> map = new HashMap<String, Long>(); map.put('msg', integral); return map;}
問(wèn)題解答
回答1:請(qǐng)求成功有數(shù)據(jù)返回,很大可能與你的返回?cái)?shù)據(jù)格式不對(duì)有關(guān)系。因?yàn)槟阍O(shè)置了dataType : ’json’ 預(yù)期服務(wù)器返回的數(shù)據(jù)類(lèi)型。這樣往往會(huì)進(jìn)入 error 回調(diào)。你排除一下返回?cái)?shù)據(jù)。
而且,error是有三個(gè)回調(diào)參數(shù)的,請(qǐng)自行打印出來(lái)。
ajax 跳入error的一些原因
回答2:彈出你的返回值,看看數(shù)據(jù)就知道了
回答3:HttpServletResponse和ajax的回調(diào)沖突了,去掉HttpServletResponse就行。
回答4:看到你的 dataType : ’json’, 要求的是服務(wù)器返回json格式,倘若服務(wù)器返回的數(shù)據(jù)不是json格式的數(shù)據(jù),則會(huì)走進(jìn)失敗的回調(diào)中。
回答5:將你AJAX配置dataType:'text',然后用alert(data)查看返回值
由于Ajax請(qǐng)求和response不一樣,得到數(shù)據(jù)后頁(yè)面不需要再渲染,所以不需要RESPONSE跳轉(zhuǎn)到新頁(yè)面。所以不需要RETURN,而是通過(guò)PrintWriter打印到請(qǐng)求的頁(yè)面@RequestMapping(value='/checkIntegral',method = RequestMethod.GET)@ResponseBodypublic void checkIntegral(@RequestParam String carOwnerID ,HttpServletRequest request,HttpServletResponse response){
Long integral = impl.checkIntegral(Long.valueOf(carOwnerID)); PrintWriter writer=response.getWriter(); writer.write(String.valueOf(integral)); writer.flush(); writer.close();
}
回答6:沒(méi)注意這個(gè)ajax是跨域請(qǐng)求的 。
回答7:你的返回值數(shù)據(jù)類(lèi)型是json,你后臺(tái)卻給他返回了一個(gè)Map,把你的map轉(zhuǎn)成json
相關(guān)文章:
1. matplotlib - python函數(shù)的問(wèn)題2. javascript - history.replaceState()無(wú)法改變query參數(shù)3. java - 是否類(lèi) 類(lèi)型指針、引用作為形參 ,函數(shù)結(jié)束不會(huì)自動(dòng)析構(gòu)類(lèi)?4. angular.js - angular ng-class里面的引號(hào)問(wèn)題5. 在mac下出現(xiàn)了兩個(gè)docker環(huán)境6. docker start -a dockername 老是卡住,什么情況?7. mysql無(wú)法添加外鍵8. javascript - react 中綁定事件和阻止事件冒泡9. JavaScript事件10. javascript - es6將類(lèi)數(shù)組轉(zhuǎn)化成數(shù)組的問(wèn)題
