- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Может кто поможет советом, почему не подгружаются на стороне клиента данные по JSON?
Есть код на стороне клиента:
Вот код файла widget.js:
(function() {
var jQuery;
if (window.jQuery === undefined || window.jQuery.fn.jquery !== '1.7.1') {
var script_tag = document.createElement('script');
script_tag.setAttribute("type", "text/javascript");
script_tag.setAttribute("src", "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js");
if (script_tag.readyState) {
script_tag.onreadystatechange = function () {
if (this.readyState == 'complete' || this.readyState == 'loaded') {
scriptLoadHandler();
}
};
} else {
script_tag.onload = scriptLoadHandler;
}
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
} else {
jQuery = window.jQuery;
main();
}
function scriptLoadHandler() {
jQuery = window.jQuery.noConflict(true);
main();
}
function main() {
jQuery(document).ready(function($) {
var ss = document.createElement('div');
ss.setAttribute("id", "sd");
document.getElementsByTagName("body")[0].appendChild(ss);
$.getJSON("http://site.ru/widget.php", function(data) {
$('#sd').html(data.html);
});
});
}
})();
И вот собственно файл widget.php:
<?header("Content-Type:text/javascript;charset=windows-1251");
$arData = Array(
"html" => "sdfsd sdffsdfsdfsdfsfd"
);
echo "? ( " . json_encode($arData) . " )";
?>
По идее должно пользователю в браузере в созданный динамически div подгрузить тестовые данные. Но этого не происходит. Если же заменить http://site.ru/widget.php на http://al.smeuh.org/cgi-bin/webwidget_tutorial.py?callback=? то все работает (данные подгружаются).
в код особо не смотрел, но есть 2 момента:
1. jQuery подключен? если нет, то подключите перед этим скриптом.
2. в файле пхп вместо
поставьте просто
1. jQuery подключен? если нет, то подключите перед этим скриптом.
jQuery здесь автоматически подгружается в файле widget.js. Не важно подключен ли он на стороне клиента или нет.
2. в файле пхп вместо
Цитата:
echo "? ( " . json_encode($arData) . " )";
поставьте просто
Цитата:
echo json_encode($arData);
На сколько мне известно, то JSON должен возвращать некоторую функцию (либо как в моем примере анонимную функцию). Поэтому убирать там ничего не надо.
На сколько мне известно, то JSON должен возвращать некоторую функцию (либо как в моем примере анонимную функцию). Поэтому убирать там ничего не надо.
Вам стоит освежить знания про JSON http://ru.wikipedia.org/wiki/JSON
http://learn.javascript.ru/json
Да и анонимная функция выглядит немного иначе, а это не пойми что, то ли тернарное выражение то ли еще что.
---------- Добавлено 12.05.2014 в 15:35 ----------
Раз уж юзаете jquery
Вам стоит освежить знания про JSON http://ru.wikipedia.org/wiki/JSON
http://learn.javascript.ru/json
Да и анонимная функция выглядит немного иначе, а это не пойми что, то ли тернарное выражение то ли еще что.
Ошибся. Не спец. в JSON.
Раз уж юзаете jquery
Код:
var ss = $('<div>').attr('id', 'ss');
$('body').append(ss);
Оптимизация кода, дело последнее. Важнее заставить все работать правильно.
В общем решил проблему. Необходимо в скрипте php (в моем случае это widget.php) в заголовки добавить
header("Access-Control-Allow-Origin: *");Вместо звездочки может быть любой домен, которому разрешен доступ к данным.