Сложность с отображением результатов JSONP в HTML - PullRequest
0 голосов
/ 30 декабря 2011

Это сводит меня с ума. Я написал файл php api и сохранил его на своем сервере. Когда я запускаю URL напрямую, результаты JSON отлично отображаются на экране, без проблем. Однако, когда я пытаюсь получить доступ к результатам из другого домена (например, междоменного домена), я не могу отобразить значения. Экран все еще пуст. Я надеюсь, что это имеет смысл. Мне интересно, если что-то не так с моим вызовом JavaScript ниже. Это действительно становится королевской болью.

Любая помощь будет принята с благодарностью.

Код ниже:

Примечание: // Пример того, как будут выглядеть результаты JSON { "имя": "Джон Доу", "url": "http://www.adomain.com", "создал": "ДАТА ЗДЕСЬ" }

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "      
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<html>
<head>
<title>API JSON Test</title>
<script type="text/javascript"    
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function(){
var timeService = "http://api.MYDOMAIN.com/api.php?  
key=abc&num=1&format=json&callback=?";

$.getJSON(timeService, function(data) {
$('showdata').html("<p>ulore="+data.name+" url="+data.url+" created="+data.created+"   
</p>");
});
});
</script>
<div id="showdata"></div>
</body>
</html>

Я бы очень признателен за любой ответ, который мог бы помочь. Это очень странно для меня. На моем удаленном сервере все нормально. Я успешно закодировал его в JSONP и получил правильный результат. Однако каждый раз, когда я пытаюсь получить доступ к результатам JSONP - либо из того же домена, либо через междоменный, на экране ничего нет. Я перепробовал 1 миллион разных вещей и занимался этим пару дней. Я читал форумы и т. Д., И, похоже, ни у кого больше нет таких проблем, не в той степени, в которой я их испытываю. Обратите внимание, что ниже показано, как выглядит JSONP:

?({"posts":[{"post":{"name":"Mike     
Jones","url":"http:\/\/aweburl.com","timestamp":"2011-12-08 09:48:04"}}]}); 

За свою жизнь я не могу этого понять.

Ответы [ 4 ]

0 голосов
/ 30 декабря 2011

ОК, я понял.Я нашел проблему.Если вы, ребята, помните результаты JSONP, которые я опубликовал ... Ну, мой код JavaScript был ошибочным.После небольшой проверки я переключился на следующее ....

Мои переменные были неверны.Поэтому я изменил, например, data.url на date.post.url, и он работает как шарм.Я многому научился за последние пару дней.Еще раз спасибо за вашу помощь.:)

$.getJSON(timeService, function(data) {  
  $('#showdata').html("<p>ulore="+data.post.ulore+" url="+data.post.url+
  "created="+data.post.created+"</p>");
});
0 голосов
/ 30 декабря 2011

Вам, вероятно, следует прослушивать HTTP-запросы, отправленные вашим браузером с помощью плагина разработчика или, например, Fiddler .Часто вы видите HTTP-коды ответов, которые могут рассказать вам больше, чем просто пустой экран :) Может быть проблема с авторизацией, например.

0 голосов
/ 30 декабря 2011

Есть проблема в добавлении HTML к результату.
Должно быть так:

$.getJSON(timeService, function(data) {
$('#showdata').html("<p>ulore="+data.name+" url="+data.url+" created="+data.created+"   
</p>");

попробуйте этот синтаксис ..

Спасибо

0 голосов
/ 30 декабря 2011

Селектор showdata будет соответствовать <showdata>, который вы хотите #showdata

...