Отправка формы AJAX в jQuery
У меня проблема при попытке отправить некоторые данные с $.post(jquery ajax function)
- это не работает. Мой код здесь:
$.post(
$(this).attr("action"),
{
task: "add",
$(this).serialize()
},
function(data) {
if (data.length > 0 ) {
alert("Success");
}
}
);
Я предполагаю, что проблема связана с отправляемыми данными, на самом деле у меня есть одна полная страница AJAX с большим количеством операторов регистра переключателей, поэтому мне нужно указать task
переменная каждый раз, когда я отправляю и запрос AJAX.
Если есть лучшие решения, как решить эту проблему, не стесняйтесь поделиться своими мыслями. Спасибо.
3 ответа
Я думаю, это должно было быть как ниже.
$.post(
$(this).attr("action"),
{task:"add",'data': $(this).serialize()},
function(data){
if(data.length > 0 ){
alert("Success");
}
}
);
Проблема с этой частью:
{
task: "add",
$(this).serialize()
}
Это приведет к синтаксической ошибке, потому что это недопустимый литерал объекта. призвание $(this).serialize()
возвращает строку, которая является строкой запроса для запроса. Что вы могли бы сделать это вместо этого:
$.post($(this).attr('action'), $(this).serialize() + '&task=add', function(data) {...});
Проблема, вероятно, в том, что часть
{task:"add",$(this).serialize()}
недопустим, так как метка требуется после запятой.
{task: "add", data: $(this).serialize()}
по крайней мере, приведет к правильному объекту, но не тот, который имеет смысл отправлять на сервер.
Я думаю, что самым простым решением было бы что-то вроде
$.post($(this).attr("action"),
$(this).serialize() + '&task=add',
function(data){
if(data.length > 0 ){
alert("Success");
}
});