我正在进行ajax调用
$.ajax({
url: 'url',
data: {},
method: 'POST',
enctype: 'multipart/form-data',
dataType: 'json',
success: function(data){
// handle success
},
error: function(data, textStatus){
//handle error
}
});
这里我的json回复是
{
person: {
name: 'John'
}
正如您所看到的,json响应不是很好。因此我得到了错误
json parse error: Expected '}'
中的
error: function(data, textStatus){
}
如何,我可以忽略此解析错误并继续执行,因为我收到了响应。
答案 0 :(得分:6)
您无法忽略解析器错误。由于解析器错误,未解析任何数据。修复您的数据。
如果无法修复数据服务器端,请获取更好的数据源。如果你不能这样做,你必须修复它的客户端,在那里连接}
,然后手动解析(禁用jQuery解析),并希望你的整个系统不会崩溃当某人稍后修复他们的错误时(这是不可避免的)。
来自@squint :
不要请求JSON或发送JSON响应头,jQuery也不会解析它。
这意味着您正在使用dataType: 'json'
请求JSON。请改用text
。 jQuery文档中的更多信息:http://api.jquery.com/jquery.ajax/
答案 1 :(得分:1)
你可以把jQuery ajax调用中的成功/错误方法想象成信使 - 从某种意义上来说就是你的信使。
如果调用了success方法,服务器会为您提供好的数据,您将在后续函数中处理该数据。如果调用了error方法,则服务器会向您提供错误数据。你仍然可以处理错误方法中的数据,但问题是它是坏数据(如果你愿意,可以认为它是不可靠的)。如果数据不可靠,那么通过提供调整来尝试修改代码中的错误数据是不好的编程技术。
作为程序员,您希望始终追求良好的数据 - 因此,重点是从远程服务器获取良好的数据,以便调用成功方法,而不是错误。这有意义吗?