>  기사  >  백엔드 개발  >  AJAX 요청, 잘못된 Get 요청 문제 해결

AJAX 요청, 잘못된 Get 요청 문제 해결

小云云
小云云원래의
2018-01-08 13:40:032675검색

이 글에서는 주로 이전 페이지로 돌아가기 위한 WeChat 소개, 페이지의 AJAX 요청, 잘못된 Get 요청 문제 분석 및 해결, 도움이 필요한 친구가 참고할 수 있으므로 모두에게 도움이 되기를 바랍니다.产 먼저 문제의 원인을 분석해 보겠습니다

최근 위챗 프로젝트를 하다가, 사용자가 '내 개인 센터'에 들어가면 이런 요구사항이 아주 흔하게 발생합니다. 버튼을 누르면 인증정보 입력으로 이동합니다. 이 버튼을 클릭하면 인증정보 입력 페이지로 이동하여 정보를 입력하고 제출합니다. 사용자가 이전 페이지로 바로 돌아갈 때. 인증 상태를 "인증 중"으로 변경해야 합니다. 이때 인증 상태를 쿼리하고 페이지에 표시되는 상태를 수정하려면 AJAX 메서드를 사용해야 합니다.

당시 ajax 메소드는 표준 메소드에 따라 작성되지 않았습니다. 기본 메소드는 Get 요청이었습니다. 프런트 엔드 JS 코드는 다음과 같습니다.

window.onload = function(){
  var isProfesser=$('#isProfesser').val();
  var isreview=$('#isreview').val();
  var userid=$('#myId').val();
  if(isProfesser=='0' && isreview=='0'){
   $.ajax({
     url:"/isAuthenticing",
     data: {userid:userid},
     success: function (data, textStatus, jqXHR) {
      if(data.result=='1'){
        $('#approveadd a').html("+认证中")
      }
     },
     error: function () {
     }
   });
  }
  //getMyQusetionInfo();
}

백그라운드 컨트롤러도 기본적으로 GET을 받았습니다

@RequestMapping(value = "/isAuthenticing", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> isAuthenticing(@RequestParam("userid") String userid,HttpServletRequest request) throws IOException {
//方法体;
}

해결책

연습을 통해 Get 메서드를 사용할 수 없다는 것이 입증되었습니다. 예, 이전 페이지로 돌아갈 때마다 페이지의 ajax 메서드는 평소대로 실행되지만 백그라운드 컨트롤러에서 반환되는 값은 요청되지 않습니다. 요청은 페이지가 마지막으로 로드되었을 때의 값이기도 합니다. 현재로서는 구체적인 이유가 명확하지 않습니다.

나중에는 한번 해보자는 마음으로 POST 요청을 사용했는데 놀랍게도 POST 요청을 사용해서 모든 과정이 순조롭게 진행되었습니다.

프런트엔드 JS 코드는 다음과 같습니다.

window.onload = function(){
  var isProfesser=$('#isProfesser').val();
  var isreview=$('#isreview').val();
  var userid=$('#myId').val();
  if(isProfesser=='0' && isreview=='0'){
   $.ajax({
     url:"/isAuthenticing",
     data: {userid:userid},     type: 'POST',     success: function (data, textStatus, jqXHR) {
      if(data.result=='1'){
        $('#approveadd a').html("+认证中")
      }
     },
     error: function () {
     }
   });
  }
  //getMyQusetionInfo();
}

백엔드 코드:

@RequestMapping(value = "/isAuthenticing", method = RequestMethod.POST)
@ResponseBody
public Map<String, Object> isAuthenticing(@RequestParam("userid") String userid,HttpServletRequest request) throws IOException {
//方法体
}

저와 같은 문제를 겪는 분들께 도움이 되었으면 좋겠습니다.

참고: 빨간색 부분은 수정된 부분입니다

관련 권장 사항:


네이티브 JS로 작성된 Ajax 요청 기능 함수 공유 예시

get 요청에서 특수 기호 전달 문제

WeChat 애플릿 네트워크 요청(GET 요청) 상세 설명

위 내용은 AJAX 요청, 잘못된 Get 요청 문제 해결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.