Это благодаря Распределению ресурсов между источниками или CORS
.
В ответе HTTP-заголовка geonames.org задает Access-Control-Allow-Origin:*
.
Это разрешает любое происхождение, включая localhost или stackoverflow.com
Чтобы увидеть его в действии, попробуйте этот код в Chrome (щелкните правой кнопкой мыши -> Проверить элемент - один из способов вызвать консоль), а затем проверьте вкладку «Сеть» на предмет заголовков запроса:
jQuery.ajax( {
url: 'http://ws.geonames.org/searchJSON'
, success: function(e){ console.log( "Success!", e ); }
, error: function(e){ console.log( "Error.", e ); }
);