使用 JSONP 技术从 Geonames API 加载国家标志

Posted

技术标签:

【中文标题】使用 JSONP 技术从 Geonames API 加载国家标志【英文标题】:Load Country Flag From Geonames API using JSONP technique 【发布时间】:2012-12-18 07:05:17 【问题描述】:

这个Request.JSONhttp://mootools.net/demos/?demo=Request.JSON以这样的方式使用JSON数据,

var data = "previews":[
  "Countrycode":"us", "src":"us.jpg", "description":"desc will be here",
  "Countrycode":"uk", "src":"uk.jpg", "description":"desc will be here",
];

在上面的方法中,我们使用Countrycode & images,写下我们自己的每张图片的名字。

我正在寻找一种通过http://api.geonames.org/export/geonamesData.js?username=orakzai 使用Geonames 来检索CountrycodeCountryFlags 通过http://www.geonames.org/flags/x/xx.gif 的方法,其中xx 是2 个字母的ISO 国家/地区代码

【问题讨论】:

【参考方案1】:

标志以 GIF 文件的形式返回,而不是任何类型的 JSON。您只需使用

<img id='myImage' src="http://www.geonames.org/flags/x/??.gif" />

但是填写 ??使用 geonames 使用的国家/地区代码。

您可以将标签放在页面中的某个位置并使用一些 javascript 将 URL 更改为您计算的 URL,或者您可以在服务器上计算 URL 并在创建 html 页面时将其插入。

如果您想在 javascript 中执行此操作,例如,在 jQuery 中,您可以使用类似的方法来更改已加载的 id='myImage' 图像标签上的 URL

 $("#myImage").attr('src', "http://www.geonames.org/flags/x/" + countryCode + ".gif")

【讨论】:

图片可以,但是如何从api.geonames.org/export/geonamesData.js?username=orakzai获取Countrycode 它是一个脚本,这里是 mootools 页面告诉如何加载脚本:click here 这里是 jQuery [点击这里]api.jquery.com/jQuery.getScript) 如果您使用 Angular,它是带有 countryCode 的 ng-src【参考方案2】:

类似的服务,例如 geonames.org:

var country_code = 'uk',
  img_uri = 'https://flagpedia.net/data/flags/normal/' + country_code + '.png';

【讨论】:

除了“uk”不是国家代码。 "gb" 在这种情况下可以工作。

以上是关于使用 JSONP 技术从 Geonames API 加载国家标志的主要内容,如果未能解决你的问题,请参考以下文章

如何使用https进行Geonames API?

使用 JSONP 的 Jquery 移动自动完成

调用 geonames 最近的地震 web 服务

使用 Ajax/jsonp 从 Web Api 接收数据

如何通过 jQuery AJAX 从使用 OAuth 1.0 身份验证的 Upwork API 请求 JSONP 文件?

API 停止支持 JSONP