我有以下ajax请求:
jQuery.ajax({ async: true, type: "GET", url: url, data: data, dataType: "json", success: function(results){ currentData = results; }, error: function(xhr, ajaxOptions, thrownError){ if (xhr.status == 200) { console.debug("Error code 200"); } else { currentData = {}; displayAjaxError(xhr.status); } } });
由于某种原因,错误的回调被称为事件,尽管http状态代码为200,即。该请求是可以的。为什么是这样?
问题可能是从网址返回的json数据格式错误。当服务器实际返回内容时,http状态代码为200。但这并不意味着数据是正确的json。检查返回的字符串化json数据格式正确。
我要回答自己的邀请,因为我是很难学到的。我没有在json数据中转义“-”引号字符。这导致了非常奇怪的行为。幸运的是,双引号字符几乎是唯一需要从JSON传递的数据中转义的字符。