2013-01-22 1 views
1

안녕하세요 다음 Js 코드가 있습니다.AJAX 양식이 두 번 제출됩니다

문제는 어떻게 든 형태로 두 번, 그러나, 그것의 단 하나 개의 인스턴스가 요청을 보여주는 사파리 관리자에 게재되어 제출하고 제출되고있다 ....

그리고 그것은 확실히에 문제 아니다 서버 측 요청을 확인하기 위해 테스트했습니다. 그래서 그것은 확실히 클라이언트 쪽입니다.

$('#replyForm').submit(function(e){ 

    e.preventDefault(); 

    var userID = $('#replyForm #userID').val(); 
    var content = $('#replyForm #content').val(); 

    if(content != '') 
    { 

     var ajaxURL = BASE_URL + 'ajax/sendMessage/'; 

     $.ajax({ 
      type: 'POST', 
      url: ajaxURL, 
      dataType: 'json', 
      data: { 
       userID: userID, 
       content: content 
      }, 
      success: function(){ 

       updateConversation(); 

      } 
     }); 

     $('#replyForm #content').val(''); 

    } 
    else 
    { 

     alert('Cannot send an empty message'); 

    } 

    return false; 

}); 
+0

'그러나 단 한 번만 제출하면 인스펙터에 표시됩니다.'- 어떤 경위? FireBug 또는 Chrome 개발자 툴바와 같은 자바 스크립트 디버깅 도구에 대해 이야기하고 있으며 단일 요청이 표시되는 경우 단일 요청이 전송되고 관찰중인 문제가 다른 곳에서 발생한다는 것을 보장합니다. –

+0

죄송합니다. Safari 관리자가 아약스 호출을 표시하는 것을 잊어 버리 셨으므로 한 번의 요청 만 보면서 아직 두 항목이 db로 만들어졌습니다. –

+0

데이터베이스에 2 개의 항목이 있다는 사실이 암시하지는 않습니다 2 개의 AJAX 호출이있다. 서버 측 호출에 버그가있을 수 있습니다. 그것을 보여줄 기회가 있습니까? –

답변

1

각 앵글에서 많은 테스트를 한 후에, 나는 이것을 서버 측 코드에서 발견했습니다! 요청을 실행하지 않습니다.

curl을 사용하여 API에 대한 요청을 작성하고있었습니다. curl_exec을 두 번 실행했습니다. 한 번 성공했는지 확인한 다음 다시 호출 결과를 얻습니다.

이것은 복제의 원인입니다.

희망이 있으면 비슷한 문제가있는 사람들을 도울 수 있습니다.