使用JSON格式的AJAX调用自动完成时出现问题
我正在尝试使用AJAX调用调用JSON数据,如下所示,在我的输入字段中使用autocomplete 但它不会返回/建议任何值..当我调试时,它也会进入sucesmodule使用JSON格式的AJAX调用自动完成时出现问题,ajax,autocomplete,Ajax,Autocomplete,我正在尝试使用AJAX调用调用JSON数据,如下所示,在我的输入字段中使用autocomplete 但它不会返回/建议任何值..当我调试时,它也会进入sucesmodule $(document).ready(function () { function log( message ) { $( "<div>" ).text( message ).prependTo( "#log" ); $( "#log" ).scrollTop( 0 ); }
$(document).ready(function () {
function log( message ) {
$( "<div>" ).text( message ).prependTo( "#log" );
$( "#log" ).scrollTop( 0 );
}
$( "#city" ).autocomplete({
source: function( request, response ) {
$.ajax({
'async': false,
'global': false,
url: "webservice?$top=10&$format=json",
dataType: "json",
data: {
featureClass: "P",
style: "full",
maxRows: 12,
term: request.term
},
success: function( data ) {
response( $.each( data, function(i, results ) {
return {
label: results.CITY,
value: results.CITY
}
}));
},
});
},
minLength: 2,
select: function( event, ui ) {
log( ui.item ?
"Selected: " + ui.item.label :
"Nothing selected, input was " + this.value);
},
open: function() {
$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
},
close: function() {
$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
}
});
有人能告诉我上面的代码出了什么问题吗
注意:我使用的json
变量有一个不需要此部分的转义字符串,或者是$.parseJSON
函数
JS:
var json = "{\"d\":{\"results\":[{\"__metadata\": {\"uri\":\"webservice(\'9424951638763661\')\",\"type\":\"arn.app.WebContent.data.LOCType\"},\"GID\":\"942495163876361\",\"USER\":\"ARN\",\"CITY\":\"Los Angels\"},{\"__metadata\": {\"uri\":\"webservice(\'9424951638763662\')\",\"type\":\"arn.app.WebContent.data.LOCType\"},\"GID\":\"942495163876362\",\"USER\":\"ARN\",\"CITY\":\"San Diago\"}]}}";
var result = $.parseJSON(json);
$.each(result.d.results, function(i, results ) {
alert(results.CITY);
});
response( $.each( data, function(i, results ) {
response( $.each( data.d.results, function(i, results ) {
问题 您的数据与您选择的数据不同 更改:
var json = "{\"d\":{\"results\":[{\"__metadata\": {\"uri\":\"webservice(\'9424951638763661\')\",\"type\":\"arn.app.WebContent.data.LOCType\"},\"GID\":\"942495163876361\",\"USER\":\"ARN\",\"CITY\":\"Los Angels\"},{\"__metadata\": {\"uri\":\"webservice(\'9424951638763662\')\",\"type\":\"arn.app.WebContent.data.LOCType\"},\"GID\":\"942495163876362\",\"USER\":\"ARN\",\"CITY\":\"San Diago\"}]}}";
var result = $.parseJSON(json);
$.each(result.d.results, function(i, results ) {
alert(results.CITY);
});
response( $.each( data, function(i, results ) {
response( $.each( data.d.results, function(i, results ) {
至:
var json = "{\"d\":{\"results\":[{\"__metadata\": {\"uri\":\"webservice(\'9424951638763661\')\",\"type\":\"arn.app.WebContent.data.LOCType\"},\"GID\":\"942495163876361\",\"USER\":\"ARN\",\"CITY\":\"Los Angels\"},{\"__metadata\": {\"uri\":\"webservice(\'9424951638763662\')\",\"type\":\"arn.app.WebContent.data.LOCType\"},\"GID\":\"942495163876362\",\"USER\":\"ARN\",\"CITY\":\"San Diago\"}]}}";
var result = $.parseJSON(json);
$.each(result.d.results, function(i, results ) {
alert(results.CITY);
});
response( $.each( data, function(i, results ) {
response( $.each( data.d.results, function(i, results ) {
说明:
var json = "{\"d\":{\"results\":[{\"__metadata\": {\"uri\":\"webservice(\'9424951638763661\')\",\"type\":\"arn.app.WebContent.data.LOCType\"},\"GID\":\"942495163876361\",\"USER\":\"ARN\",\"CITY\":\"Los Angels\"},{\"__metadata\": {\"uri\":\"webservice(\'9424951638763662\')\",\"type\":\"arn.app.WebContent.data.LOCType\"},\"GID\":\"942495163876362\",\"USER\":\"ARN\",\"CITY\":\"San Diago\"}]}}";
var result = $.parseJSON(json);
$.each(result.d.results, function(i, results ) {
alert(results.CITY);
});
response( $.each( data, function(i, results ) {
response( $.each( data.d.results, function(i, results ) {
这是因为ASP.NET的JSON结果始终包含.d
。然后包括一个results
元素。这将使您进入阵列,并允许您在阵列上$。每个
很抱歉,这是我的错误,JSON数据没有“,”并且它只是一个正确的JSON数据..谢谢我的实际问题不是ajax,而是无法在我的应用程序中看到自动完成功能。是的,这应该是data.d.results
问题。如果没有,我很乐意为您做一个演示示例。更新答案,如果您需要更多帮助,请告诉我