Как выполнить вызов JSON к URL?

Я смотрю на следующий API:

http://wiki.github.com/soundcloud/api/oembed-api

Пример, который они дают,

Вызов:

http://soundcloud.com/oembed?url=http%3A//soundcloud.com/forss/flickermood&format=json

Ответ:

{
"html":"

Что я должен сделать для получения этого объекта JSON от просто URL?

42
задан Jaken Herman 7 July 2015 в 19:43
поделиться

3 ответа

Кажется, они предлагают вариант js для параметра формата, который вернет JSONP. Вы можете получить JSONP так:

function getJSONP(url, success) {

    var ud = '_' + +new Date,
        script = document.createElement('script'),
        head = document.getElementsByTagName('head')[0] 
               || document.documentElement;

    window[ud] = function(data) {
        head.removeChild(script);
        success && success(data);
    };

    script.src = url.replace('callback=?', 'callback=' + ud);
    head.appendChild(script);

}

getJSONP('http://soundcloud.com/oembed?url=http%3A//soundcloud.com/forss/flickermood&format=js&callback=?', function(data){
    console.log(data);
});  
59
ответ дан 26 November 2019 в 23:20
поделиться

Поскольку URL-адрес находится не в том же домене, что и ваш веб-сайт, вам необходимо использовать JSONP.

Например: (В jQuery):

$.getJSON(
    'http://soundcloud.com/oembed?url=http%3A//soundcloud.com/forss/flickermood&format=js&callback=?', 
    function(data) { ... }
);

Это работает путем создания тега