cotonti.com : AJAX передача из JS в сценарий PHP https://www.cotonti.com Последние сообщения в теме Cotonti en Mon, 06 Oct 2025 19:15:08 -0000 Macik Алекс не совсем прав, параметр «Х» при Пост запросе (при услови, что это аякс запрос) можно передавать как пост параметром, так и в строке запроса (гет параметром). Для убедительности можно глянуть строки 568-572 файла common.php.

-----

С описанной проблемой сталкивался когда прикручивал к одному из сатов флэшовый аякс загрузчик файлов. Бился долго и параметр Х передавал, и другие варианты пробовал. Оказалось, что он (загрузчик) работает в 2 этапа, первым делает запрос на наличие файла (и этот запрос отрабатывает нормально с Х параметром), а делее идет собственно загрузка файла, в которой он обращается «напрямую» и параметров не передает. 

Решил в конце концов, примерно так, как описано в приведенной выше ссылке:  т.е. повесил на хук «init» проверку входящего запроса, если это флэш загрузчик - отключаем проверку XSS:

if ($_SERVER['HTTP_USER_AGENT']=='Shockwave Flash') {
 define('COT_NO_ANTIXSS', TRUE);
}

Это упрощенный код. для надежности надо еще проверять прочие параметры запроса.

 

]]>
ср, 05 дек 2012 06:22:28 -0000
Uch Спасибо! Буду пробовать.

]]>
вт, 04 дек 2012 20:31:31 -0000
Alex300 При передаче POST запроса параметр x тоже должен прийти через POST. Иначе получим Forbidden. Защита движка от прямой передачи данных с другого хоста (от ботов)

Например при выводе формы этот параметр добавляется к форме автоматически скрытым полем ввода.

Получить его через JavaScript, для отправки Ajax запроса можно, например, так:

 var x = $('input[name="x"][type="hidden"]').first().val();

Сам запрос при этом будет выглядеть примерно вот так:

	$.post('index.php?e=some_ext&a=ajxGetChildValues',
	            {parent_dicId: pDicId, parent_dicValue: pDicValue, x: x },
	            function(data) {
	                // Обработка полученных данных
	        }, 'json');

(Важно последнее x: x)

Ну или если отправляете саму форму через POST при помощи функции jQuery  .serialize() ничего дополнительно делать не надо.

]]>
вт, 04 дек 2012 18:41:52 -0000
Moool13 Uch, попробуй cot_xg() заменить на {PHP.sys.xk} (или &x={PHP.sys.xk}).

]]>
вт, 04 дек 2012 18:29:34 -0000
Uch Отправляет flash, по этому не могу привести код.

Добавлено 2 минуты спустя:

Забыл упомянуть, что ошибка возникает при использовании метода POST. При GET ошибка отсутствует.

Добавлено 2 минуты спустя:

Ошибка:

Ошибка в ссылке

Неверный URL

Статус в консоли FireBug : 403 Forbidden

]]>
вт, 04 дек 2012 18:12:05 -0000
Moool13 Uch, приведи код, который отправляет данные.

]]>
вт, 04 дек 2012 17:57:56 -0000
Uch Неа

]]>
вт, 04 дек 2012 17:23:00 -0000
Wadik Может это нужно http://www.cotonti.com/forums?m=posts&q=7004

]]>
вт, 04 дек 2012 17:18:44 -0000
Uch Пытаюсь передать запрос в ajax сценарий php из js скрипта. В ответ постоянно получаю ошибку, что страница не найдена. Адрес 100% верный - проверял через адресную строку и получал ответ через echo в сценарии. Скрипт передает в т.ч. cot_xg() 
Что за ...?

]]>
вт, 04 дек 2012 15:40:34 -0000