如何动态地在jQuery中构建$ .ajax方法的“数据”部分

时间:2009-02-02 17:49:44

标签: jquery

我正在尝试为我当前的应用程序构建可重用的$ .ajax方法,但我很难找到有关如何动态构建数据:部分的可靠信息...

目前我正在寻找类似于下面这个功能的东西,但我不确定如何实现这个w / jQuery 1.3.x(或者这种类型的东西是否被移入核心?)

var extraParams = {
        timestamp: +new Date()
    };

    $.each(options.extraParams, function(key, param)
    {
        extraParams[key] = typeof param == "function" ? param() : param;
    });

2 个答案:

答案 0 :(得分:2)

我使用此方法作为包装器,以便我可以发送参数。此外,使用方法顶部的变量可以使其以更高的比率进行最小化,并允许在进行多次类似调用时重用一些代码。

function InfoByDate(sDate, eDate){
var divToBeWorkedOn = '#AjaxPlaceHolder';
var webMethod = 'http://MyWebService/Web.asmx/GetInfoByDates'
var parameters = "{'sDate':'" + sDate + "','eDate':'" + eDate + "'}"

  $.ajax({
                type: "POST",
                url: webMethod,
                data: parameters,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {    
                        $(divToBeWorkedOn).html(msg.d);
                },
                error: function(e){
                        $(divToBeWorkedOn).html("Unavailable");                          
                }
        });

答案 1 :(得分:1)

这部分问题:

typeof param == "function" ? param() : param;

应该用当前的jQuery语法编写为

$.isFunction(param) ? param() : param;

我希望这有助于你建立自己想要的东西。