Получить строку URL для создания объекта JSON в JavaScript? - PullRequest
0 голосов
/ 21 ноября 2011

Я хочу получить доступ к Yelp API 1.0, например, у меня есть этот URL

http://api.yelp.com/business_review_search?term=burger&location=Los%20Angeles%2A%20CA&ywsid=SECRETKEY

, который даст мне несколько мест Бургер в Лос-АнджелесеСтрока JSON.

Как получить доступ к этому URL-адресу, чтобы превратить ответ в объект JS?

Я знаю, как создавать объекты JS, проблема заключается в получении ответа от сервера.

Вот мой код прямо сейчас: Может быть, мы можем попытаться начать оттуда:

var url = "http://api.yelp.com/business_review_search?term=burger&location=Los%20Angeles%2A%20CA&ywsid=secretKey" ;


            $.getJSON(url, function(json) {
                alert("JSON Data: " + json.message.text);
            });

Ответы [ 3 ]

2 голосов
/ 21 ноября 2011

Вы попадаете в тему Политика одного и того же происхождения , которая просто говорит, что вы не можете получить доступ к URL-адресу b.com с a.com используя ajax в обычной форме.

Если вы используете ajax, вы должны использовать JSONP или Access-Control заголовки.В противном случае вы должны использовать свой сервер в качестве прокси для отправки обычных HTTP GET и POST на этот URL.

0 голосов
/ 21 ноября 2011

Используйте $. GetJSON () .

Вот пример использования yelp:

$.getJSON("http://api.yelp.com/business_review_search?term=burger&location=Los%20Angeles%2A%20CA&ywsid=SECRETKEY&jsoncallback=?", function(json) {
   console.log("JSON Data: " + json);
});
0 голосов
/ 21 ноября 2011

Добавьте «& callback = myFunction» в URL.Добавьте в документ тег сценария с этим URL-адресом в качестве источника.

var scriptElem = document.createElement('script');
scriptElem.src = url;
document.body.appendChild(scriptElem);

Затем создайте на своей странице функцию myFunction, и ее первым аргументом будут возвращаемые данные.

...