| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Кроссдоменный запрос AJAX |
| Автор: Aleskert 11.4.2012, 20:41 | ||||
| Есть сайт, который содержит БД по одной из ММО игрушек. На сайте красиво рисуются графики в Google Charts. Цель: хочу себе такие же Но есть проблема, я не могу сделать кросс-платформенный запрос. http://api.jquery.com/jQuery.ajax/ говорит, что просто доставь в параметрах
и будет щастье. Но увы и ах. Сам запрос я реализировал так:
Постоянно вылетает ошибка алертом. Кто-то может помочь? |
| Автор: baldina 11.4.2012, 21:02 | ||
и это тёплое с мягким Вам, конечно, нужен cross domain request а кросс-платформенный ajax (т.е. независимый от браузера) обеспечивает jquery документация jquery абсолютно права, Вы просто невнимательно читали. crossDomain - для эмуляции кросс-доменного запроса на своём сервере а для запросов за пределами домена требуется тип jsonp
|
| Автор: Aleskert 11.4.2012, 23:58 | ||||
| Страница из которой я пытаюсь вытянуть строку JSON не поддерживает callback (а значит и JSONP). Она просто формирует некоторый данные раз в сутки. И именно эти данные надо вытянуть. Очень жаль, что я не знаком с регулярными выражениями, может они смогут помочь? Добавлено через 14 минут и 19 секунд Попытался сделать с помощью PHP таким образом:
В этом моменте страница возвращает валидный JSON. Но $.ajax почему-то его не кушает:
|
| Автор: Aliance 12.4.2012, 10:00 |
Что-то я не заметил там работы с json вообще. там идет работа лишь с файлами. |
| Автор: Aleskert 12.4.2012, 14:44 | ||
Спасибо, исправил ошибку. Но появилась новая проблема
В самом начале строки появляется BOM, который не дает $.ajax получить свой профит. Все файлы сохранены в "utf-8 без BOM", откуда он берется - ума не приложу. |
| Автор: baldina 12.4.2012, 15:56 |
сам php файл случаем не utf с BOM? Добавлено через 10 минут и 11 секунд вообще-то http://worldofclans.ru/google_chart/ClanFights.html?id=99 отдает utf c BOM. php BOM не выкидывает, так что вот |
| Автор: Aliance 13.4.2012, 10:13 | ||||
Всё-таки не
а
Да и функцию fopen для удалённого соединения идеалогически не правильно использовать. Лучше сокеты/cURL. |
| Автор: Aliance 13.4.2012, 11:01 |
Я словом "сокеты" слишком грубо описал и в том числе эту функцию (все-таки она использует контекст через stream_context_create). Я вообще приверженец курла, но почему бы и не так. Что касается fopen, то вот http://forum.vingrad.ru/forum/topic-131851.html обсуждалась эта тема, почитай комментарии. |
| Автор: baldina 13.4.2012, 14:23 | ||||
| почитал. они не кажутся мне убедительными. в том смысле, что нет причин отказываться от этих функций всегда. разработчики php реализовали удобную модель fopen-wrapper (которая к передаче по сети отношения не имеет), почему её не использовать там, где допустимо? я не увидел различий в открытии файла fopen()
|