0

当我尝试发送一些数据时遇到问题$.post(jquery ajax function)- 它不起作用。我的代码在这里:

$.post(
    $(this).attr("action"),
    {     
        task: "add",
        $(this).serialize()
    },
    function(data) {
        if (data.length > 0 ) {
            alert("Success");
        }
    }
);

我猜问题出在发送的数据上,实际上我有一个完整的 AJAX 页面,其中包含许多要执行的 switch case 语句,因此我需要在task每次发送和 AJAX 请求时指定变量。

如果有关于如何解决此问题的更好解决方案,请随时分享您的想法。谢谢你。

4

3 回答 3

1

问题出在这部分:

{     
    task: "add",
    $(this).serialize()
}

这将引发语法错误,因为它不是有效的对象文字。调用$(this).serialize()返回一个字符串,这是请求的查询字符串。你可以做的是:

$.post($(this).attr('action'), $(this).serialize() + '&task=add', function(data) {...});
于 2013-01-31T13:23:32.793 回答
1

我想应该像下面这样。

$.post(
    $(this).attr("action"),
    {task:"add",'data': $(this).serialize()},
    function(data){
        if(data.length > 0 ){
            alert("Success");
        }
    }
);
于 2013-01-31T13:20:44.563 回答
0

问题可能是该部分

{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");
}
});
于 2013-01-31T13:25:39.453 回答