2010-05-14 4 views
2

Это код, который я использую, Когда я пишу ссылку в браузере (IE или Mozilla), она работает как (MyFunc ({"memes": [ «источник»:»http://www.knall.....), , но когда я пытаюсь запустить его как HTML-файл у меня есть ошибка в статус-баре что проблема ?. БлагодаряФункция обратного вызова не работает при использовании getJSON

<head> 
    <style>img{ height: 100px; float: left; }</style> 
    <script src="http://code.jquery.com/jquery-latest.js"></script> 
</head> 
<body> 
    <div id="images"></div> 
<script>$.getJSON("http://tagthe.net/api/?url=http://www.knallgrau.at/en&view=json&callback=MyFunc",function(data){   
       alert(data); 
     }); 
</script> 
</body> 
+1

Ну, какая ошибка? – Pointy

+0

Ошибка; В Mozilla "NULL". В IE8 Access запрещена строка 5113 jquery-latest.js – asilloo

+0

$ .getJSON ("http://tagthe.net/api/?url=http://www.knallgrau.at/en&view=json&callback=?" , функция (данные) {alert (data);} .... удалите «;» перед «, function». – Box

ответ

4

Вы не определяете MyFunc везде.. в коде. Вы скорее положите ? в URL вместо произвольного имени, а jQuery заменит его на сгенерированное имя обратного вызова.

+0

Также можно определить обратный вызов для возвращаемого объекта JSON. Если параметры callback и view = json дается ответ, инкапсулируется в вызове функции для данного обратного вызова.Таким образом, вышеуказанный запрос возвращает MyFunc ({"memes" ...}), если присутствует параметр callback = MyFunc. Это ссылка API: http://www.tagthe.net/fordevelopers – asilloo

+1

@asilloo: Да, и jQuery имеет встроенную поддержку для этого (его обычно называют «JSONP»). Вам не нужно определять обратный вызов вручную, поскольку jQuery это для вас, если вы сделайте то, что я сказал. –

+0

Martti: как вы сказали, я удалил «обратный вызов» и изменил код на $ .getScript («http://tagthe.net/api/?url=http://www.knallgrau.at/en&view=json») ; Теперь у меня нет никакой ошибки, но в этом случае должно работать «alert (data)» или нет, потому что окно пустое. Я хочу получить данные от tagthe.net – asilloo

-1

Вы должны использовать getScript вместо getJSON, так как вы вызываете URL-адрес другого доменного имени.

Update:

Следующий код прекрасно работает для меня:

+1

Nope. jQuery позаботится об этом для вас. – Matt

+0

Новая ошибка; В Mozilla "undefined". В I.E.8 Линия доступа запрещена 5113 jquery-latest.js – asilloo

+0

Я обновил свой ответ с помощью некоторого рабочего кода. – remi

-1

вы не можете сделать Ajax звонки в другие домены

http://en.wikipedia.org/wiki/Same_origin_policy

Кроме того, ваш URL не является действительный URL, скопировать и вставить его в браузере и вы увидите сообщение об ошибке http://tagthe.net/api/url=http://www.knallgrau.at/en&view=json&callback=MyFunc

ваш действительный URL является: http://tagthe.net/api/?url=http://www.knallgrau.at/en&view=json&callback=MyFunc

$.getJSON(" 
    http://tagthe.net/api/url=http://www.knallgrau.at/en&view=json&callback=MyFunc", 
    function(data){   
     alert(data); 
    }); 
+2

1) JSONP используется, чтобы обойти одну и ту же политику происхождения и 2) я считаю, что URL-адрес в оригинале вполне правильный. По крайней мере, это не пропускает "?" вы говорите, что это –

+0

пользователь редактировал URL .... ... – GerManson

+0

где вы это видите? http://stackoverflow.com/posts/2838150/revisions –

0

Eureka человек! Он не работает с последней версией ... вы должны использовать jquery 1.3.1 not newer ...

Смежные вопросы