动态地创建ajax调用的一部分

时间:2017-03-14 10:09:14

标签: jquery ajax

我有一个处理不同类型数据的函数。

为此,需要添加或删除

"processData: false,
 contentType: false,"

在ajax-call中。

我第一次尝试使用true / false数组,失败了。我怎么能这样做?

这是我必须动态改变的电话

 $.ajax({
       //url: '".$global['serverurl']."module/".$m['ID']."/code/cms_data.php?job='+jobid+'&ds='+id+'&new='+jobnew+'&refreshid='+refreshid,
       url: '".$global['serverurl']."module/".$m['ID']."/code/cms_data.php',
       //type: 'PUT',
       type: 'POST',
       data: formData,
       processData: false,
       contentType: false,
       success: function(result) {...

如果我尝试使用建议功能(@Lajos Arpad),就像这样

function getAJAXcall(processData, contentType, formData, callback) {
    var returnValue = {
       url: '".$global['serverurl']."module/".$m['ID']."/code/cms_data.php',
       type: 'POST',
       data: formData,
       success: callback
    };
    if (processData === true){ returnValue.processData = processData; }
    if (contentType === true){ returnValue.contentType = contentType; }
    return returnValue;
}

它不会工作 - 如果我手工编码它会工作,所以我认为在上面的函数是一个小错误?

function getAJAXcall(processData, contentType, formData, callback) {
    var returnValue = {
       url: '".$global['serverurl']."module/".$m['ID']."/code/cms_data.php',
       type: 'POST',
       data: formData,

       processData: false,
       contentType: false,

       success: callback
    };
    return returnValue;
}

2 个答案:

答案 0 :(得分:1)

您可以创建function来生成对象

function getAJAXObject(processData, contentType, formData, callback) {
    var returnValue = {
       url: '".$global['serverurl']."module/".$m['ID']."/code/cms_data.php',
       type: 'POST',
       data: formData,
       success: callback
    };
    if (processData === true) returnValue.processData = processData;
    if (contentType === true) returnValue.contentType = contentType;
    return returnValue;
}

并像这样使用它:

$.ajax(getAJAXObject(false, true, formData, function(result) {/*Something*/}));

答案 1 :(得分:0)

基于Lajos Arpad的建议

function getAJAXcall(processData, contentType, formData, callback) {
    var returnValue = {
       url: '".$global['serverurl']."module/".$m['ID']."/code/cms_data.php',
       type: 'POST',
       data: formData,
       success: callback
    };
    if (processData === false){ returnValue.processData = processData; }
    if (contentType === false){ returnValue.contentType = contentType; }
    return returnValue;
}

重要的区别是" === false"不是真的。

True是标准的,所以它必须添加,如果它应该是假的!