Uch |
|
---|---|
Пытаюсь передать запрос в ajax сценарий php из js скрипта. В ответ постоянно получаю ошибку, что страница не найдена. Адрес 100% верный - проверял через адресную строку и получал ответ через echo в сценарии. Скрипт передает в т.ч. cot_xg() |
Wadik |
|
---|---|
Может это нужно http://www.cotonti.com/forums?m=posts&q=7004 |
Uch |
|
---|---|
Неа |
Moool13 |
|
---|---|
Uch, приведи код, который отправляет данные. |
Uch |
|
---|---|
Отправляет flash, по этому не могу привести код. Добавлено 2 минуты спустя: Забыл упомянуть, что ошибка возникает при использовании метода POST. При GET ошибка отсутствует. Добавлено 2 минуты спустя: Ошибка:
Статус в консоли FireBug : 403 Forbidden |
Moool13 |
|
---|---|
Uch, попробуй cot_xg() заменить на {PHP.sys.xk} (или &x={PHP.sys.xk}). |
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() ничего дополнительно делать не надо. Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!...
...Sorry for my english... Бесплатные расширения для Cotonti: https://lily-software.com/free-scripts/ |
Uch |
|
---|---|
Спасибо! Буду пробовать. |
Macik |
|
---|---|
Алекс не совсем прав, параметр «Х» при Пост запросе (при услови, что это аякс запрос) можно передавать как пост параметром, так и в строке запроса (гет параметром). Для убедительности можно глянуть строки 568-572 файла common.php. ----- С описанной проблемой сталкивался когда прикручивал к одному из сатов флэшовый аякс загрузчик файлов. Бился долго и параметр Х передавал, и другие варианты пробовал. Оказалось, что он (загрузчик) работает в 2 этапа, первым делает запрос на наличие файла (и этот запрос отрабатывает нормально с Х параметром), а делее идет собственно загрузка файла, в которой он обращается «напрямую» и параметров не передает. Решил в конце концов, примерно так, как описано в приведенной выше ссылке: т.е. повесил на хук «init» проверку входящего запроса, если это флэш загрузчик - отключаем проверку XSS: if ($_SERVER['HTTP_USER_AGENT']=='Shockwave Flash') { define('COT_NO_ANTIXSS', TRUE); } Это упрощенный код. для надежности надо еще проверять прочие параметры запроса.
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |