【问题标题】:Which syntax should I use for objects that I send to a controller?我应该对发送到控制器的对象使用哪种语法?
【发布时间】:2017-01-13 15:43:54
【问题描述】:

我有什么理由应该使用

语法 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“更安全”,但这可能是迷信(与我无数小时修复错误的经验相结合),我无法确定。

【问题讨论】:

  • 我看不出有什么区别,第二个会像第一个一样执行函数并发送结果。
  • 第一个sn-p发送文字数据"foo"1,第二个发送函数valueOfFoocalculateBar的返回值。他们在做不同的事情。
  • 我猜从函数的名称他们应该返回"foo"/1
  • 第一种方法更简洁,您首先获取所有值。

标签: javascript jquery syntax


【解决方案1】:

IMO 在向控制器发送对象方面没有区别,两种情况下发送的数据都是相同的。

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

如果你真的应该调用某个函数,你可以这样称呼它们:

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

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

希望这会有所帮助。

【讨论】:

  • 比较清楚,我也这么认为。你知道我可以读取数据对象是如何生成的任何来源吗(例如,在它被发送到控制器之前)?
  • 很抱歉不明白你的意思:(但是数据会根据HTTP请求方法发送,这两个"POST", "GET"是客户端之间请求-响应的常用方法和服务器.. 您可以在stackoverflow.com/questions/504947/… 中找到每种方法的工作原理
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多