在文本框的onkeydown上调用此函数
function autoComplete(type, select) {
$('#search_name').autocomplete({
source: function( request, response ) {
$.ajax({
url: "/searches/autoComplete",
dataType: "json",
data: {
term: $.trim(request.term)
},
success: function( data ) {
response( $.map( data, function( item ) {
return {
label: item.value,
value: item.value,
type : item.type,
id : item.id
}
}));
}
});
},
minLength: 2,
select: function( event, ui ) {
var url = ui.item.type + '/edit/' + ui.item.id;
$(location).attr('href', url);
}
});
}
在控制台中检查时收到如下错误
a is null
..."resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b...
只有在没有返回响应data
时才会出现此错误,否则它将正常工作。
如何避免此错误?
答案 0 :(得分:0)
如果您期望返回数据的请求,但它返回null,则不应将其视为成功但视为失败。在您的服务器代码中,如果您无法返回所请求的数据,则应返回404或类似内容。
修改:根据以下评论,似乎最好使用PHP中的header("HTTP/1.0 404 Not Found");
解决此问题。
我想你也可以检查JavaScript以避免错误,但这不是一个干净的解决方案..
success: function( data ) {
if(data) {
response( $.map( data, function( item ) {
return {
label: item.value,
value: item.value,
type : item.type,
id : item.id
}
}));
}
}