Как мне сообщить jQuery, что запрос AJAX был успешным? - PullRequest
2 голосов
/ 06 июня 2011

Я пытаюсь отправить форму с AJAX через jQuery:

$('.submit input').click(function() {return false;});

$("#addcourseform").submit(function(event) {
    event.preventDefault();
    var formcont = $(this).serialize();
    $.post({
        type:"POST",
        url: "<?php echo base_url(); ?>handover/courseadd",
        data: formcont,
        success: function(returned) {
            alert("It worked: "+returned);
        }
    });
});

Этот код выше обернут в ready (), не возвращает никаких ошибок в консоли и все такое хорошее.Тем не менее, он, кажется, добавляет [объект объекта] в конце URL-адреса POST.Так как я использую CodeIgniter, он генерирует 400 неверных запросов, потому что он включает в себя запрещенные символы в URL.

Как получить jQuery от добавления этого?

РЕДАКТИРОВАТЬ ПОСЛЕ ИСПРАВЛЕНИЯ:

Для тех будущих людей, которые читают это и думают, что я идиот, я действительно неправильно использовал синтаксис post ().

Ответы [ 3 ]

6 голосов
/ 06 июня 2011

$. Post - это не то же самое, что $. Ajax , поэтому вы должны указать параметры по-другому.

Попробуйте это:

$.post("<?php echo base_url(); ?>handover/courseadd", 
        $(this).serialize(), 
        function(returned){     
            alert("It worked: " + returned);
        });

Или просто замените post на ajax в вашем текущем коде.

4 голосов
/ 06 июня 2011

Редактировать : Это самая старая ошибка, которую можно сделать в jQuery - вы, вероятно, забыли обернуть все это в обработчик ready().:)

JSFiddle, который работает

2 голосов
/ 06 июня 2011

У вас есть другая синтаксическая ошибка:

var formcont = $(this).serialize());

Удалите последние ):

var formcont = $(this).serialize();

Посмотрите на вашу консоль в браузере, она должна регистрировать следующиепроблемы для вас, чтобы легко определить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...