[Решено] CodeIgniter и ajax-post запрос

Хабровчане, помогите разобраться.

Имеется простая форма, откуда ajax'ом должна отсылаться информация.
Пробую $.get():

$.get('registration/check/', 's=3', function(html) {
   alert('1');
});

Всё нормально.

Пробую $.post() с теми же параметрами:

$.post('registration/check/', 's=3', function(html) {
   alert('1');
});

FireBug получает в ответ 500-ю ошибку (internal server error).

Кто-нибудь с этим сталкивался?
  • Вопрос задан
  • 11134 просмотра
Пригласить эксперта
Ответы на вопрос 6
MpaK999
@MpaK999
Буду!
Логи покажите, что выдает?
Так же обычно CodeIgniter настроен на отсечение GET запросов наоборот.
URI я бы с корнем писал — '/registration/check'
А $.post в JQuery имеет действительно формат, что во втором параметре не строка, а объект.
А такое что выдает?
$.ajax({
  type: 'POST',
  url: '/registration/check',
  data: {s:3}
});
</script>
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Еще одна идея: некоторые фреймворки (например, symfony (насколько мне известно)), если отправлять post вместо get (или наоборот) выдает 404, а не 405 или 406. Может, в CI что-нибудь такое же?
Ответ написан
@Aragats
еще одна дурацкая идея, а если так:
$.post('registration/check/', {s: «3»}, function(html) {
alert('1');
});
Ответ написан
Комментировать
@pluseg Автор вопроса
Кто-нибудь может скинуть рабочие .htaccess (тот, что в корне) и конфиги на почту? Буду сильно благодарен. (Напишу мыло в личку.)
Ответ написан
@pluseg Автор вопроса
Переустановил CodeIgniter (v2.0.0), ничего не изменилось. Самое интересное, что конфиг как будто игнорируется. Изменение $config['log_threshold'] = 4; и $config['allow_get_array'] = FALSE; ни на что не влияет.
Ответ написан
@pluseg Автор вопроса
Всем спасибо за внимание, причина нашлась — в конфиге было включено $config['csrf_protection'] = true. Выяснил, пройдя по input.class и закоментив, сначала, $this->_sanitize_globals(). В коде метода была отсылка как раз на csrf. Правда теперь не понятно, как отправлять post с включенным csrf, но это уже дело наживное;)

Всем спасибо!
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы