2013-06-23 1 views
0

json 형식으로 적절한 상태를 반환하는 PHP 함수에서 상태 메시지를 가져 오려면 YUI 함수를 호출합니다.구문 오류 예기치 않은 토큰 u Json 오류

오류 메시지 제공에 내가 이벤트를 트리거 할 때 : -

"구문 오류 예기치 않은 토큰을 U"여기

소스입니다 : -

var ajax_url = 'initcalls.php?action=ping'; 
var pngbtn = Y.one('#id_solr_btn_ping'); 
    pngbtn.on('click', function(e) { 

      Y.one('#solr_ping_status').setHTML('&nbsp;<img src="pix/ajax-circle.gif">'); 
      Y.io(ajax_url, { 
      on : { 
       success : function(data) { 
     try 
     { 
       var resp = Y.JSON.parse(data.responseText); 
        } 
     catch (e) 
        { 
          alert(e); 
          return; 
        } 
     if (resp.status == 'ok') { 
      Y.one('#solr_ping_status').setHTML('&nbsp;<img src="pix/success.png">'); 
      timeout("clearSaveStatus('#solr_ping_status')",2000); 
     } 
     else { 
     Y.one('#solr_ping_status').setHTML('&nbsp;<img src="pix/warning.png">'); 
     }} 
     } 
       }); 

      return false; 

      }); 

내 PHP 파일은 다음을 반환 결과 : -

 {"status":"ok"} 
+2

'data.responseText'에 포함 된 정확한 응답이'{ "status": "ok"}'입니까? PHP가 뭔가 다른 것을 보내고있는 것처럼 보입니다. 아마도 오류 메시지 일 것입니다. –

+0

나는이 간단한 PHP 페이지와 그 리턴 값을 우리가 기대해야 할 것과 정확하게 시도했다. user2475624

답변

1

Y.io에 대한 콜백은 두 개의 parame TERS : 트랜잭션의 ID와 두 번째 매개 변수에서 응답 객체 : 당신이 정의되지 idresponseText 속성에 액세스하고 있기 때문에

Y.io(url, { 
    on: { 
    success: function (id, response) { 
     // ... 
    } 
    } 
}); 

당신이지고있어 오류가 아마. 정의되지 않은 값은 "undefined" 문자열로 강제 변환되며 JSON.parseu이 "정의되지 않음"에서 발생할 때 throw됩니다.

data 개체로 두 번째 매개 변수를 사용해야합니다.

+0

고맙습니다. 저를 구해 주셔서 감사합니다. – user2475624

+0

PHP 파일 내부에서 사용할 매개 변수의 배열을 전달하는 방법은 무엇입니까 ??? GET 요청 URL을 제외하고? – user2475624

+0

예, 서버에 매개 변수를 보내는 IO 요청의 구성 객체에 추가 할 수있는'data' 속성이 있습니다. [IO 사용자 가이드] (http://yuilibrary.com/yui/docs/io/#the-configuration-object)를 읽어야합니다. – juandopazo

관련 문제