我正在调用一个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(' <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(' <img src="pix/success.png">');
timeout("clearSaveStatus('#solr_ping_status')",2000);
}
else {
Y.one('#solr_ping_status').setHTML(' <img src="pix/warning.png">');
}}
}
});
return false;
});
我的php文件返回以下结果: -
{"status":"ok"}
答案 0 :(得分:1)
Y.io
的回调会收到两个参数:事务的id和第二个参数中的响应对象:
Y.io(url, {
on: {
success: function (id, response) {
// ...
}
}
});
您获得的错误可能是因为您正在访问未定义的responseText
id
属性。遇到“未定义”中的"undefined"
时,未定义的值会被强制转换为JSON.parse
字符串并u
抛出。
您只需将第二个参数用作data
对象。