我正在使用一个 PHP API,它将所有内容输出为 JSON。
我需要调用其中一个 API 方法并使用 AJAX 请求解析它。我正在使用 jQuery(尽管这并不重要)。
当我发出请求时,它会出错,并显示“parsererror”作为 textStatus
和“语法错误:无效标签”。
简化代码:
$.ajax
({
type: "POST",
url: "http://mydomain.com/api/get/userlist/"+mid,
dataType: "json",
dataFilter: function(data, type)
{
/* Here we assume and pray */
users = eval(data);
alert(users[1].id);
},
success: function(data, textStatus, XMLHttpRequest)
{
alert(data.length); // Should be an array, yet is undefined.
},
error: function(XMLHttpRequest, textStatus, errorThrown)
{
alert(textStatus);
alert(errorThrown);
},
complete: function(XMLHttpRequest, textStatus)
{
alert("Done");
}
});
如果我省略eval(data)
,那么一切都会正常工作。嗯,除了 data
在 success
中仍然未定义。请注意,我在 PHP 中获取一个对象数组,然后通过 json_encode 将它们传递出去。这会有什么不同吗?
这方面尚未取得任何进展。如果有人相信他们可以提供帮助,我愿意提供更多代码。
这是 PHP 方面的事情
private function _get_user_colors($id)
{
$u = new User();
$u->get_where(array('id' => $id));
$bar = array();
$bar['user'] = $u->stored;
foreach($user->colors as $color)
{
$bar['colors'][] = $color;
}
echo(json_encode($bar));
}
我在使用其他基于 PHP 的脚本时遇到了零 问题。我不知道为什么 Javascript 会对此有疑问。
最佳答案
Parsererror 通常表示服务器的响应格式错误。如果直接在浏览器中加载它看起来不错吗?
关于php - 处理来自 AJAX 请求的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3026383/