如何为JQuery ajax编写通用例程?

时间:2011-10-19 19:16:28

标签: jquery asp.net

每当我使用jquery ajax for get和post然后我编写代码如下

$(document).ready(function () {
$.ajax({
type: "POST",
url: "MyPage.aspx/ProcessInfo",
data: JSON.stringify(DTO),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {}

});

所以我需要知道如何为jquery ajax调用编写通用例程,我可以在其中传递请求类型调用GET / POST,URL,DATA TYPE和DATA。数据可以在json中 格式或可能像两个或三个augument。所以帮助我的概念,我可以编写通用例程,我可以在任何情况下使用ajax调用。数据类型是否为json。感谢

4 个答案:

答案 0 :(得分:4)

你可以使用jQuery的build int $.get()$.post()简写,或者创建你自己的自定义包装器:

$(document).ready(function() {
    function jQuerySubmit(type, url, data, contentType, dataType, handler) {
        $.ajax({
            type: type,
            url: url,
            data: data,
            contentType: contentType
            dataType: dataType,
            success: handler
        });
    }
});

答案 1 :(得分:3)

为什么不覆盖$.ajax对象中的默认值,而不是编写一个像ajax请求那样简单的函数。

例如:

如果您的contentType始终为"application/json; charset=utf-8",您可以使用$.ajaxSetup方法将其设置为默认值:

jQuery.ajaxSetup({
     contentType: "application/json; charset=utf-8",
     dataType: "json",
     type: "POST"
});

然后你可以用较少的参数编写ajax调用:

$(document).ready(function () {
    $.ajax({
    url: "MyPage.aspx/ProcessInfo",
    data: JSON.stringify(DTO),
    success: function (data) {}
});

如果您想创建一个功能来执行此操作,我仍然会建议您设置默认值,但您可以执行其他任何答案。

答案 2 :(得分:1)

它已经在jQuery中设计了:

获取:http://api.jquery.com/jQuery.get/

$.get("test.php",
   function(data){
     $('body').append( "Name: " + data.name ) // John
              .append( "Time: " + data.time ); //  2pm
   }, "json");

POST:http://api.jquery.com/jQuery.post/

$.post("test.php", { "func": "getNameAndTime" },
  function(data){
    console.log(data.name); // John
    console.log(data.time); //  2pm
  }, "json");

答案 3 :(得分:0)

function makeAjax (type , url , data , content,dataType , succFunc)
{
$.ajax({
type: type ,
url: url ,
data: JSON.stringify(data ),
contentType: content,
dataType: dataType ,
success:succFunc(data)

});
}

makeAjax ("POST","MyPage.aspx/ProcessInfo",DTO,"application/json; charset=utf-8","json",myfunc)

function succFunc(data)
{
}