AJAX обмен данных с одного домена на другой

12
ДП
На сайте с 23.11.2009
Offline
203
#11

Поясню, т.е. у вс на сервере ваш скрипт должен выдавать примерно такой JS-код в ответ на запрос:


var dic = {
'name1' : 'value1',
'name2' : 'value2'
}
process(dic);

при этом сама функция process(data) у вас должна быть определена в скрипте на клиентском сайте.

babnicks
На сайте с 23.10.2009
Offline
47
#12
Дикий пионер:
Поясню, т.е. у вс на сервере ваш скрипт должен выдавать примерно такой JS-код в ответ на запрос:

var dic = {
'name1' : 'value1',
'name2' : 'value2'
}
process(dic);

при этом сама функция process(data) у вас должна быть определена в скрипте на клиентском сайте.

Да можно просто: :)


process( {
'name1' : 'value1',
'name2' : 'value2'
} );

А process это функция, которая например записывает данные из входного параметра в виде словаря в выпадающий контроль.

100% защита от спам-ботов (https://www.keycaptcha.com)
G
На сайте с 19.07.2009
Offline
39
#13

Возник вопрос: а если возвращаемые скриптом данные (var dic ...) будут большими по объему?

Я так понимаю то что возвращает скрипт идет ч/з GET, а как известно туда много не поместишь.

MirUrokov.ru - ГДЗ (готовые домашние задания), видео уроки, открытые уроки, онлайн калькуляторы. (http://mirurokov.ru)
babnicks
На сайте с 23.10.2009
Offline
47
#14
gooooodru:
Возник вопрос: а если возвращаемые скриптом данные (var dic ...) будут большими по объему?
Я так понимаю то что возвращает скрипт идет ч/з GET, а как известно туда много не поместишь.

Вы все перепутали, это в GET запрос много не поместишь, а в GET-ответ можно хоть петабайт протолкнуть если канал позволит ;)

Когда Вы в браузере просто вбиваете URL и он начинает скачивать файл или открывать страницу это и есть GET-запрос.

Не бывает GET и POST ответов, ответ он всегда ответ (response) :) Бывают GET и POST запросы.

G
На сайте с 19.07.2009
Offline
39
#15

Вот например у меня на сайте такой AJAX.php

<?

if(isset($_GET['predmet']) ){
$predmet = $_GET['predmet'];
// далее идет обработка в зависимости от предмета который выбрал, и получаем массив $array_klass
echo "
process( {
'predmet' : '$predmet',
'klass' : '$array_klass'
});"
}
?>

Как должен выглядеть JS код у клиента, как-то так или нет (в JS не силен):



<script type="text/javascript" >
var script = document.createElement("script");
script.setAttribute( "type", "text/javascript");
script.setAttribute( "src", "http://mirurokov.ru/AJAX.php?predmet=algebra&klass=0&r="+Math.random() );
</script>
babnicks
На сайте с 23.10.2009
Offline
47
#16

Надо еще appendChild сделать.


<script type="text/javascript" >
var script = document.createElement("script");
script.setAttribute( "type", "text/javascript");
document.getElementsByTagName("head").item(0).appendChild(script);
script.setAttribute( "src", "http://mirurokov.ru/AJAX.php?predmet=algebra&klass=0&r="+Math.random() );
</script>

Ну и описываете функцию process, она вызовится после загрузки скрипта из вашего AJAX.php

G
На сайте с 19.07.2009
Offline
39
#17

Сделал так

<script type="text/javascript" >

var script = document.createElement("script");
script.setAttribute( "type", "text/javascript");
document.getElementsByTagName("head").item(0).appendChild(script);
script.setAttribute( "src", "http://mirurokov.ru/AJAX.php?predmet=algebra&klass=0&r="+Math.random() );

function process (predmet, klass){
alert (predmet);
};

</script>

Пишет в alerte

[object Object]

babnicks
На сайте с 23.10.2009
Offline
47
#18

Если ответ скрипта такой:


process( { 'predmet' : '$predmet', 'klass' : '$array_klass' });

То функция должна быть вот такая: (это ведь Вы объект передаете, вот она вам и алертит [object Object])


function process (obj){
alert (obj.predmet);
};
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий