0

我正在调用 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"}
4

1 回答 1

1

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

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

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

您只需要使用第二个参数作为您的data对象。

于 2013-06-23T19:45:16.430 回答