语法错误意外令牌u Json错误

时间:2013-06-23 18:57:27

标签: php ajax json yui

我正在调用一个YUI函数来从php函数获取状态消息,该函数以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"}

1 个答案:

答案 0 :(得分:1)

Y.io的回调会收到两个参数:事务的id和第二个参数中的响应对象:

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

您获得的错误可能是因为您正在访问未定义的responseText id属性。遇到“未定义”中的"undefined"时,未定义的值会被强制转换为JSON.parse字符串并u抛出。

您只需将第二个参数用作data对象。