2012-06-29 4 views
1

Ajax를 사용하여 버튼을 클릭했는지 확인하는 방법은 무엇입니까? 단추를 클릭하면 Ajax 요청 (이미 완료 됨)을 보내고 단추를 클릭하면 알림을 받길 원합니다. 다른 소스 파일에서 눌려 졌는지, Ajax 요청에서 보낼 헤더를 확인하는 방법을 모르겠습니다.Ajax에서 버튼을 클릭했는지 확인

<script type = "text/javascript"> 
function checkVote() 
{ 
    request = new ajaxRequest(); 
    request.open("POST", "checkButton.php", true); 
    request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    request.send(params); 
} 

function ajaxRequest() 
{ 
    try 
    { 
     request = new XMLHttpRequest(); 
    } 
    catch(e1) 
    { 
     try 
     { 
      request = new ActiveXObject('Msxml2.XMLHTTP'); 
     } 
     catch(e2) 
     { 
      try 
      { 
       request = new ActiveXObject('Microsoft.XMLHTTP'); 
      } 
      catch(e3) 
      { 
       request = false; 
      } 
     }        
    } 
    return request; 
} 
</script> 
+3

내가 말할 수있는 것은 ... 모든 ActiveX ... 제발, 사용하지 마십시오. – Kris

+0

상용구 ajaxRequest isn ' 여기에 필요한 것 같아요. – davidgoli

+0

버튼 클릭 이벤트는 어떻게 시작됩니까? 그것이 내가보고 싶은 것입니다. – davidgoli

답변

3

인기있는 자바 스크립트 라이브러리의 모든/프레임 워크는 스크립트가 요청을 알려 XMLHttpRequest의 값으로 HTTP_X_REQUESTED_WITH을 보내 "버튼"라는 내 양식에 버튼이 있다고 추정 (이하 내 코드는 Ajax를 통해 제작되었으므로 jQuery, Prototype 등을 사용하면이 작업이 처리되어 JavaScript 코딩 수명이 단축됩니다. 그렇지 않은 경우 수락 된 규칙에 따라 직접 설정할 수 있습니다.

if ($_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest') { 
    // Ajax request 
} 
+0

그리고 유용한 팁으로 그 기능을 만드십시오. 나는 내 'using_ajax()'라고 불렀다. 그런 식으로 어디서나 수백 개의'if ($ _SERVER [ 'HTTP_X_REQUESTED_WITH']'s는 내 코드를 감싸고 있지 않다. if (using_ajax())' – Josh

+0

하지만 어떻게하면'if (Ajax 요청을 보내고있는 다른 소스 파일에서 isset ($ _ POST [ 'button']))'? –

+0

Ajax 요청을받는 페이지는이 코드가있는 곳입니다. 원본을 제공하는 페이지가 아닙니다. content. –

관련 문제