성공하지 못한 채 요청을 보내도록 Ajax를 구현하는 방법

php中世界最好的语言
풀어 주다: 2018-03-30 15:30:44
원래의
1033명이 탐색했습니다.

이번에는 요청을 보냈지만 성공하지 못하는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿