2012-04-18 2 views
0

Вот мой рабочий пример пытается загрузить файл из GitHub:JSONP возвращается ответ (в Firebug чистого окна), но это не выход на странице

<html> 
<head><title>Get Gists</title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
</head> 
<body> 
<script type="text/javascript"> 
$(document).ready(function() { 
    var url = "https://gist.github.com/2406934.js?file=check-jquery-load"; 
    $.getJSON(url + "?callback=?", null, function(gist) { 
     alert(gist); 
     $("#gist-info").append(gist); 
    }); 
}); 
</script> 
<div id='gist-info'></div> 
</body> 
</html> 
+0

HTTPS://gist.github.com/2406934.js?file=check-jquery-load, это не похоже на JSON мне – Johan

ответ

1

У вас в значительной степени есть 2 проблемы. Кросс-домен и тот факт, что возвращаемый фрагмент не является точно JSON. Он находится между HTML и Javascript.

Вам определенно нужен вспомогательный метод для анализа возвращаемого объекта, так как он выполняет document.write().

Смотрите следующую ссылку, которая в значительной степени решает ту же проблему, что у вас возникли: Loading GitHub Gist

Это то, что ваш Gist выглядит в действии, когда вместе взятые: Link

+0

Спасибо за решение Деннис. прежде чем вы написали это, я переработал свой код, чтобы использовать fancybox для загрузки встроенного кода gist в iframe, передав идентификатор gist и имя файла в строке запроса на страницу, загруженную в fancybox iframe. Если бы я решил переработать это, хотя это тоже выглядит отличным вариантом. –

1

что URL не возвращает действительный JSON.

От jQuery Documentation:

Важно: На JQuery 1.4 если файл JSON содержит синтаксическую ошибку, то запрос будет обычно не молча. По этой причине избегайте частого ручного редактирования данных JSON. JSON - это формат обмена данными с синтаксическими правилами, которые более строгие, чем те, которые обозначаются объектной литературой JavaScript. Например, все строки, представленные в JSON, независимо от того, являются ли они свойствами или значениями, должны быть заключены в двойные кавычки. Подробнее о формате JSON см. http://json.org/.

+0

ой ... Я думал, что возможно получить доступ к данным не-json, как это. Думаю, мне нужно вместо этого пойти по пути прокси-сервера? –

+0

Вот аналогичный вопрос/ответ на то, что вы ищете: http://stackoverflow.com/questions/1292486/why-cant-i-load-an-external-resource-from-jquery-load-method –

+1

Здесь это еще один ответ с некоторыми плагинами jQuery, которые позволят вам выполнять междоменную нагрузку: http://stackoverflow.com/questions/5320511/how-do-you-get-content-from-another-domain-with-load –

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

  • Нет связанных вопросов^_^