将$ .AJAX容纳在函数内,并将参数用作“数据”参数的一部分

mvc_help

我正在尝试创建一个可重用的函数,该函数将允许我调用AJAX请求,并使用传入的参数之一作为AJAX调用的数据部分中的参数。

// Returns AJAX data for updating other fields based on a dropdown changing
App.prototype.OnDropdownChange = function (s, e, newId, ajaxParameter, ajaxRequestURL) {
    // Create an AJAX request based on the parameters
    $.ajax({
        url: ajaxRequestURL,
        data: JSON.stringify({ ajaxParameter: newId }),
        type: 'POST',
        success: function (data) {
            // Return the data
            return data;
        },
        error: function (data) {
            // Error
            return data;
        }
    });
}

理想情况下,“ ajaxParameter”将保留要传递的参数的名称。因此,例如,“ ajaxParamter”包含“ theNewID”,这是我的MVC控制器期望的参数,但是当传递给它时,它将显示为“ ajaxParameter”,而不是内部值。

我该如何工作?

编辑

http://imgur.com/a/GSaPd

看到这里它如何显示为ajaxParameter吗?我想要的是成为我所传递的一切。

罗里·麦克罗森(Rory McCrossan)

您可以执行所需的操作,只需要使用方括号符号定义键来构建对象。

但是,更大的问题是您returnsuccesserror处理程序中的使用。由于AJAX请求是异步的,因此您无法从中返回任何内容。相反,您需要提供在这些事件下执行的回调函数。试试这个:

App.prototype.OnDropdownChange = function (s, e, newId, ajaxParameter, ajaxRequestURL, sCallback, eCallback) {
    var data = {};
    data[ajaxParameter] = newId;

    $.ajax({
        url: ajaxRequestURL,
        data: data, // note no need to stringify the object
        type: 'POST',
        success: function (data) {
            sCallback && sCallback(data);
        },
        error: function (x, s, e) {
            eCallback && eCallback(x, s, e);
        }
    });
}

然后,您可以这样称呼:

x.OnDropdownChange(s, e, contactID, "CustomerContactId", "/Project/Project/GetCustomerContactDetails/", function(data) {
    // success:
    console.log(data);
}, function(x, s, e) {
    // error:
    console.log(x, s, e);
}); 

从这段代码中可以看到,它仍然很冗长,现在基本上只是包装,$.ajax几乎没有好处。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将函数参数用作常量表达式的一部分-gcc vs clang

scikit-learn:将任意函数用作流水线的一部分

将 null 作为 vararg 参数的一部分从 Kotlin 传递给 Java 方法

将参数作为查询字符串或 url 的一部分传递?

SSRS:将报告参数设置为查询的一部分

将参数传递给别名,该别名是字符串的一部分

在Azure API管理中,我可以将订阅密钥用作请求标头的一部分而不是查询字符串参数吗?

将数组的一部分作为函数参数传递

如果我将http用作我的网站的一部分,并将https用作我的另一部分,是否会公开任何安全问题

将某些内容作为路径的一部分和参数作为参数是否等效?

Hadoop MapReduce:是否可以仅将一部分输入数据用作MR作业的输入?

将 Jquery 函数参数作为动态控制的下拉选项的一部分传递到 PHP 函数中

R - 定义一个函数,它不是将参数识别为对象,而是作为调用的一部分

将调试写入文件并将其一部分用作变量

如何将变量用作数组名称的一部分

将“ whoami”的结果用作别名的一部分

如何设置构建环境变量以将Clang用作NDK的一部分?

如何将枚举类值用作for循环的一部分?

将Google的OpenID Connect用作SSO的一部分

何时将未包装的可选内容用作类型定义的一部分

如何将AngularJS / Ionic用作Backbone / Cordova项目的一部分?

Bash:将第n行用作命令行的一部分

我可以将xargs用作目录路径的一部分吗?

将单元格的值用作宏的一部分

将标签和功能文件参数作为 Karate.Runner 的一部分传递(Java 调用)

Dao 对象 queryForId 将长度为 0 的字符串作为参数的一部分?

将单行设为实线并将其一部分虚线

在 Python 中的函数内用作变量名一部分的参数

将第一行的一部分和第二行的一部分用作python pandas中的列标题