我应该将哪种语法用于发送给控制器的对象?

时间:2017-01-13 15:43:54

标签: javascript jquery syntax

我有理由使用

语法1

$.ajax({
  url: url,
  data: {foo: "foo", bar: 1},            // everything is declared
  success: success,
  dataType: dataType
});

而不是语法2

$.ajax({
  url: url,
  data: {foo: valueOfFoo(), bar: calculateBar(100)},    // reference to functions
  success: success,
  dataType: dataType
});

将对象发送到控制器时?

jQuery API定义表明数据类型可以是一个对象,也可以是随请求发送到服务器的字符串。

不知何故,我认为语法1更安全",但这可能是迷信(与我无数小时的错误修正经验配对),我无法确定它。

1 个答案:

答案 0 :(得分:1)

IMO 将对象发送到控制器没有区别 两种情况下的发送数据都是相同的。

清晰度 方面,第一种方法似乎更清晰,因为您只需正确定义data对象而无需调用函数并执行额外操作在定义期间可以在此部分之前完成这些调用的过程,并且他们不需要在$.ajax内调用它们。

如果您真的应该调用某些功能,可以将它们称为:

var foo = valueOfFoo();
var bar = calculateBar(100);

$.ajax({
    url: url,
    data: {foo: foo, bar: bar},
    success: success,
    dataType: dataType
});

希望这有帮助。