2012-03-22 3 views
0

는 업데이트 : 나는 제이슨를 얻을 필요가아약스 JQuery와 통화 나던 작업 나

있습니다 .. 클릭 이벤트가 작동 나던 왜 ..

갱신 :

   <script> 

$(document).ready(function(){ 
      $("#RefreshButton").click(function(){ 
         $.ajax({ 
          url: "/test2/ajax.php", 
          type: "GET", 
          dataType: "json", 
          success: function(data) 
          { 
           alert("This is my data: "+data); 
           $(".article").remove(); 
           $.each(data, function(key, value){ 
            $('articleColumn').append('<p class="article"><font size="5"><b>'+value[0]+'</b></font><br/>' 
             +value[1]+' <a href="#" class="readMore">Read more...</a></p>'); 
           }); 
          }, 
          error: function(error) 
          { 
           alert(JSON.stringify(error)); 

          } 
         }); 

        }); 
       }); 
    </script> 

AJAX 호출 작동하지만 .. 클릭 이벤트 핸들러에있을 때 .. 왜?!?

나는 문제에 대한 솔루션은 HTML에있다 생각 :

<a href="" id="RefreshButton" >Refresh</a> 

이 페이지를 새로 고침 한 후 응답을 보낼 수 있습니다. 이벤트가 전파하는 방식의 문제라고 생각합니다 .hmm

+1

페이지가 로컬 서버에 있어야합니다. 예 : http : // localhost/mypage.html' – mgraph

+0

아마도 많이 바뀌지는 않겠지 만 'contentType'설정을 시도 했습니까? – MilkyWayJoe

+0

'방화범 '으로 무엇을 보십니까? – gdoron

답변

0

일반적으로 jQuery를 사용하여 ajax 호출을 할 때는 POST 및 GET 메서드의 짧은 버전을 사용합니다. 그래서 경우에 나는이

 
$.get("ajax.php", function(data){ 
    alert(data); //just to make sure it works 
}, "json"); 


로 json_encode (배열 ("키"=> "값"을 사용하여 JSON으로 ajax.php에서 응답을 다시 전송해야합니다, "키 같은 것을 할 것 "=>"value ")); ?>)

또한 ajax는 도메인간에 이동할 수 없기 때문에 http://localhost/ajax.php을 지정할 필요가 없으며 jquery 함수를 호출하는 상대 경로로 지정할 수 있습니다.

+0

get을 사용하고 싶지 않습니다. 나는 json을 사용하고 싶다. 업데이트를 참조하십시오. 나는 사건이 전파하는 방식에 있을지도 모른다라고 생각한다 – BlackFire27

+0

예. 나는 나의 자신의 문제를 해결했다. 나는 틀린 것을 돌려줘야했다. 클릭 이벤트 처리기 .. 좋은 2 시간 그 버그에 갔다. – BlackFire27