首页 文章

jquery ajax调用问题

提问于
浏览
1

在jQuery ajax语句中,我想从服务器接收有效负载并在另一个函数中处理它 . 我只是遇到了函数语法的问题 .

$.ajax({
    url: 'mypgm.pgm',
    type:'POST', 
    dataType: 'json',
    data:   'action=add' +
             '&techno=' + techno +
             '&activity=' + activity, 
    success: ajax_callback(msg),
    error:function (xhr, ajaxOptions, thrownError){
                    alert(xhr.status);
                    alert(thrownError);
        }       
    });
}

    function ajax_callback(msg) { 

        alert(msg);
    }

响应

{"response": {
    "success": "0",
    "message": "The Activity has been added."
    }
}

3 回答

  • 0

    $.ajax() 的成功回调处理程序可以采用以下值:

    success(data, textStatus, jqXHR)
    

    资料来源:http://api.jquery.com/jQuery.ajax/

    所以你的函数回调将是这样的:

    function ajax_callback(data, textStatus, jqXHR)     
    {
      alert(data.response)
    }
    

    请注意我是如何以这种方式创建命名函数的,而不是将其赋值给var . 如果您只关心数据,则可以关闭最后两个参数:

    function ajax_callback(data)     
    {
      alert(data.response)
    }
    
  • 0

    试试这个:

    $.ajax({
        url: 'mypgm.php',
        type: 'POST',
        dataType: 'json',
        data: 'action=add' + '&techno=' + techno + '&activity=' + activity,
        success: function(data) {
            alert(data)
        }
    });
    
  • 3

    您应该在ajax调用之前定义回调并将函数的签名更改为:

    var ajax_callback = function(data, textStatus, xhr) {
        // parse the data.responseText to json
    }
    

    你也可以只使用 $.getJSON()

相关问题