0

YUI 関数を呼び出して、json 形式で適切なステータスを返す php 関数からステータス メッセージを取得しています。

イベントをトリガーすると、エラーメッセージが表示されます:-

「予期しないトークン 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"}
4

1 に答える 1

1

2 つのパラメーターを受け取るためのコールバックY.io: トランザクションの ID と、2 番目のパラメーターの応答オブジェクト:

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

あなたが得ているエラーは、おそらく未定義のresponseTextプロパティにアクセスしているためです。未定義の値は文字列idに強制され、「未定義」に遭遇するとスローされます。"undefined"JSON.parseu

data2 番目のパラメーターをオブジェクトとして使用するだけです。

于 2013-06-23T19:45:16.430 に答える