이 글은 Ajax 요청이 성공적으로 전송되었으나 성공으로 들어가지 못하는 문제에 대한 해결 방법을 주로 공유하며, 참고할만한 가치가 있어 모두에게 도움이 되기를 바랍니다. 편집자를 따라 살펴보겠습니다. 모두에게 도움이 되기를 바랍니다.
1. 상황 설명: Ajax가 성공적으로 전송되고 백그라운드도 요청에 성공적으로 응답하며 json 데이터를 반환합니다. 또한 크롬을 통해 요청을 모니터링하여 응답 json 데이터를 볼 수 있지만 성공 방법이 입력되지 않습니다.
Front-end:
$.ajax({ type : "get", data : {'dbId':node.dbId,'viewId':node.id,'date':new Date()}, url : "${ctp}/ViewOperate/ShowViewSql", dataType : "json", success : function(data){ console.log(data); layer.alert(data,{ skin: 'layui-layer-molv' }); } error : function(data){ layer.alert("进入了error方法",{ skin: 'layui-layer-molv' }); } });
Back-end:
@RequestMapping(value="/ShowViewSql",method=RequestMethod.GET) @ResponseBody public String showCreateViewSql(@RequestParam(value="dbId",required=false)Integer dbId, @RequestParam(value="viewId",required=false)Integer viewId) { return "abc"; }
원인: 백그라운드에서 반환된 json 데이터가 순수 문자열 형식 개체인 경우 프런트엔드 dataType 속성을 설정한 후 json으로 변환하는 경우 String 객체에서 변환된 json 데이터 형식이 표준 json 형식이 아닌 것으로 간주되므로 오류에 해당하는 메소드를 실행합니다.
해결책: 백엔드를 변경할 필요가 없습니다. 프런트엔드 Ajax 요청의 dataType 속성을 text
$.ajax({ type : "get", data : {'dbId':node.dbId,'viewId':node.id,'date':new Date()}, url : "${ctp}/ViewOperate/ShowViewSql", dataType : "text", success : function(data){ console.log(data); layer.alert(data,{ skin: 'layui-layer-molv' }); } error : function(data){ layer.alert("进入了error方法",{ skin: 'layui-layer-molv' }); } });
특수 사례: 백엔드에서 반환된 json 번호가 "1", "2"와 유사한 경우, "22" , "232123", "-1", "232123.44" 숫자 문자열을 사용할 경우, 프런트엔드 dataType 속성을 json으로 설정하면 정상적으로 성공 메소드를 입력할 수 있습니다. 이유는 알 수 없습니다.
관련 권장사항:
Ajax 백그라운드 성공에서 전송된 json 데이터 문제에 대한 간략한 분석
ThinkPHP 페이지 점프 성공 및 오류 메서드 개요_PHP 튜토리얼
위 내용은 Ajax 요청이 성공적으로 전송되었지만 성공하지 못하는 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!