对JSON web服务使用jQuery

对JSON web服务使用jQuery,jquery,json,jsonp,Jquery,Json,Jsonp,我正在尝试使用geopages.org api在我的邮政编码输入字段的模糊上填充城市输入字段。我不知道我的剧本有什么问题 <script> $("#zip").blur(function() { var city = $("#city"); var zip = $("#zip"); $.getJSON("http://www.geonames.org/postalCodeLookupJSON?postalcode=" + zip.val + "&country=US&am

我正在尝试使用geopages.org api在我的邮政编码输入字段的模糊上填充城市输入字段。我不知道我的剧本有什么问题

<script>

$("#zip").blur(function() {
var city = $("#city");
var zip = $("#zip");

$.getJSON("http://www.geonames.org/postalCodeLookupJSON?postalcode=" + zip.val + "&country=US&username=myusername?", function(json){
 data = json.postalcodes[0].placeName;
 city.val(text);                    
});
}
});

</script>

$(“#zip”).blur(函数(){
var city=$(“#city”);
var-zip=$(“#zip”);
$.getJSON(“http://www.geonames.org/postalCodeLookupJSON?postalcode=“+zip.val+”&country=US&username=myusername?”,函数(json){
data=json.postalcodes[0]。地名;
city.val(文本);
});
}
});

我很确定这是一个语法错误,但我的jQuery不是很好,所以我不知道问题出在哪里。

您的
}
比需要的多了一个,请尝试以下方法:

$("#zip").blur(function() {
var city = $("#city");
var zip = $("#zip");

$.getJSON("http://www.geonames.org/postalCodeLookupJSON?postalcode=" + zip.val + "&country=US&username=myusername?", function(json){
 data = json.postalcodes[0].placeName;
 city.val(text);                    
});
});

你能把你所有的代码都带去吗?确保API以其他方式返回JSONP如果它是纯json,你需要像YQL这样的代理或服务来首先获取数据我对json和JSONP都是新手。是我正在使用的api。下面是一个正在工作的JSFIDLE:。我能看到的唯一一件事是,如果您没有启用免费web服务,那么它就无法工作。取消注释
警报
,以便在发生错误时查看消息。当然,将
用户名
替换为有效的用户名。。。注意,我从他们的角度使用了这个示例,即,这是一个带有固定参数的调用-您应该更改回您已经更改的内容,正如我在回答中所说的那样,从您的
zip
。您在JSFIDLE中使用文本区域,但我在应用程序中使用文本框,这有关系吗?您需要使用
$('#zip')。val()
要获取zip的值,不使用
.val()
将只获取DOM对象周围的jQuery包装。更新:,只需替换您的
用户名
,然后在文本框中点击进出-您应该得到圣地亚哥。可能会有很多事情出错-您是否包括jQuery,是否在onload中执行所有操作(即
$(function(){…}
),等等。我的建议-通读代码以确保没有任何语法错误,将其拆分成小块,尝试模仿JSFIDLE上正在运行的内容。希望您能有所收获!给您:。这将它包装在
$(function(){…}
中。尝试在本地复制此代码并运行-应该可以。要了解更多信息,请: