이번에는 요청을 보냈지만 성공하지 못하는 Ajax를 구현하는 방법을 보여드리겠습니다. 요청을 보냈지만 성공하지 못하는 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";
}
Cause: 백그라운드에서 반환된 json 데이터가 순수 문자열 유형인 경우 object, 프론트 엔드 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. 이유는 알 수 없습니다. 이 기사의 사례를 읽은 후 방법을 마스터했다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 자료:
Ajax 및 양식을 사용하여 등록된 사용자에게 필요한 기능 구현ajax를 사용하여 WeChat 웹 페이지 인증 로그인을 구현하는 단계(코드 포함)위 내용은 성공하지 못한 채 요청을 보내도록 Ajax를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!