Вопрос к тем кто знает Ajax/JQuery - Страница 2

Senator2

ТОП-МАСТЕР
Регистрация
25.09.2007
Сообщения
7,027
Реакции
489
Поинты
0.000
dkameleon, может Вы тогда сообразите..
Смотрите, добавив всего один параметр в приведенный мною код, по FireBug я вижу что данные в ответе сервера содержатся, а вот добраться до них что-то не получается...
PHP:
<script type="text/javascript"> 
    jQuery(document).ready(function() 
    { 
			jQuery.ajax({url: "http://www.google.ru", cache: false, dataType: "script", success: function(data, textStatus)
			{ 
				alert(data); 
			}});
    }); 
</script>
Указав параметр dataType = script, я вижу данные, которые возвращает мне сервер (до этого я их не видел, было пусто), а вот достучаться до них пока не получается (data = undefined)...
Т.е. он загрузил весь ответ от сервера как script, и судя по описанию - пытается его выполнить. Т.е. наверное data - это объект какой-то...
 

dkameleon

МАСТЕР
Регистрация
14.12.2006
Сообщения
4,237
Реакции
3,167
Поинты
0.000
Указав параметр dataType = script, я вижу данные, которые возвращает мне сервер (до этого я их не видел, было пусто), а вот достучаться до них пока не получается (data = undefined)...
и не получится.

можете попробовать так:
http://api.jquery.com/jQuery.getScript/

и посмотрите как меняется ДОМ.
 
Последнее редактирование:

Senator2

ТОП-МАСТЕР
Регистрация
25.09.2007
Сообщения
7,027
Реакции
489
Поинты
0.000
и не получится.

можете попробовать так:
http://api.jquery.com/jQuery.getScript/

и посмотрите как меняется ДОМ.

Да, я уже увидел... Засада тут полная...

Хотя, погуглив, увидел кучу статей на тему кроссдоменных запросов...
Я и сам сталкивался оказывается с этим, но как то не придал этому внимания - что это оказывается такая проблема.. :t-1doh:

Я, например, решал это таким способом :
- с помощью jQuery.get или jQuery.post (со стороны клиента) делал запрос на свой сервер (внутридоменный, т.е. php скрипт расположен на том же сервере что и страница, которую загрузил пользователь)...
- этот php скрипт делал кроссдоменный запрос нужного мне URL (используя cURL или file_get_contents (на PHP это позволяется делать).
- результат такого запроса возвращал клиенту...

Это, кстати, и есть одним из способов кроссдоменных запросов, т.е. использовать php-скрипт как прокси для таких запросов...
Работает оно, и очень даже неплохо, при условии что контент, который нужно загрузить, не зависит от места его загрузки (т.е. не важно клиент его загрузил, или сервер - результат будет таким же)...
А вот если контент зависит от того кто его грузит (может IP анализируется, может еще чего то), то такой способ не подойдет...

Есть также способ, который использует Flash.
Т.е. на стороне клиента, используя Flash как-то тоже можно сделать кроссдоменный запрос. Правда я не стал с этим разбираться - как то оно не очень просто на первый взгляд показалось...

Так что - признаюсь - был отчасти неправ...
dkameleon правильно говорит всё.. В чистом виде jQuery (Ajax) не позволит сделать кроссдоменные запросы со стороны пользователя (т.е. клиента) - это технология защиты в браузерах...
Способы обойти это есть, но все они не так просты...
Как по мне - простейший способ - использовать свой php скрипт, как прокси (как в приведенном мною примере). Но здесь есть свои ограничения, и если такой вариант Вам не подходит, то ... надо гуглить...
 

QuaSwa

Любитель
Регистрация
23.10.2011
Сообщения
237
Реакции
13
Поинты
0.000
Все равно спасибо за содействие и помощь )
Через php уже есть решение, но его минус в том, что это мы получим для сервера.
Это нагрузка + ретрансляция, нужен хороший неограниченный канал.
 

dkameleon

МАСТЕР
Регистрация
14.12.2006
Сообщения
4,237
Реакции
3,167
Поинты
0.000
Способы обойти это есть, но все они не так просты...
способов обойти это нет :)

варианты, при каких возможно выполение кроссдоменного запроса о стороны пользователя:
1. только баги в броузерах - латаются быстро.
2. умышленно переключенные опции безопасности в броузере вручную пользователем. опции при всем прочем скрытые - девелоперская функция, не подходит для задачи.
3. Если посторонний сервер будет развешать кроссдоменный запрос - а это ВК делать не будет.


причины простые: безопасность пользователя и его данных - не буду вдаваться в детали :)
 
Сверху Снизу