Вместо этого используйте callback=?
, например:
$.getJSON("http://emspost.ru/api/rest/?callback=?&method=ems.calculate&from=city--abakan&to=city--anadyr&weight=1",
function(data){
alert(data);
});
Тогда вы получите ваш объект в оповещении :) JSONP работает, принимая этот обратный вызов в строке запроса и вызывая эту функцию (которая не 't существует, если только вы не сделали function json() {}
, когда он вернется. Когда вы выполните ?callback=?
jquery, динамически присваивает этой функции success
, которую вы дали $.getJSON()
, и заменяет ее следующим образом: ?callback=FunctioNameGiven
так что он на самом деле будет работать правильно.
Если вы думаете о том, как он работает, это в основном:
<script type="text/javascript">
//returned javascript here, e.g. FunctioNameGiven({ object data });
</script>
Это сделано так, что это запрос GET, и не ограничивается тем жеправила политики источника, вот как работает JSONP, когда обычный запрос JSON блокируется:)