Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jQuery ajax调用中添加参数,最好添加到URL或对象?_Javascript_Jquery - Fatal编程技术网

Javascript 在jQuery ajax调用中添加参数,最好添加到URL或对象?

Javascript 在jQuery ajax调用中添加参数,最好添加到URL或对象?,javascript,jquery,Javascript,Jquery,当使用jQuery get、post或ajax将参数传递给服务器时,将其附加到URL或将其添加到对象是否更好/更合适?如果答案是基于特定的情况,什么情况下一种方法比另一种更好?例如,请参见以下内容 $.get('serverScript.php?v1=123&v2=321', { v3: '111' }, function(data) { ... }); $.get('serverScript.php', { v1:123, v2:321, v3: '111' }, funct

当使用jQuery get、post或ajax将参数传递给服务器时,将其附加到URL或将其添加到对象是否更好/更合适?如果答案是基于特定的情况,什么情况下一种方法比另一种更好?例如,请参见以下内容

$.get('serverScript.php?v1=123&v2=321', { v3: '111' }, function(data) {
    ...
});

$.get('serverScript.php', { v1:123, v2:321, v3: '111' }, function(data) {
    ...
});

只要您可以使用对象来表示数据而不是执行字符串操作,就可以这样做

  • 第一种方法使用手动字符串操作来序列化数据

  • 第二种方法使用一个自动的、经过测试的规范解析器来序列化相同的数据

最后应使用字符串操作自己序列化数据。它更难测试,更不清晰,更容易出错


这与您将使用
JSON.stringify
而不是自己构建JSON的事实完全相同。

对于我的特定应用程序,
{v3:'111'}
是一个属性(实际上是一个回调函数),用户可以覆盖它。你还推荐你的表演方式吗?如果是这样,我可以很容易地做到这一点,但需要使用jQuery
extend
或一些JavaScript代码来合并这两个对象。Thanks@user1032531我不明白您的具体问题,也不明白为什么需要
jQuery.extend
(v1、v2和v3到底是什么?为什么没有有意义的名称:)。不过,我还是100%推荐。
v1
v2
是应该始终传递给服务器的参数,并且设置为服务器组件、控制器等。
v3
甚至可能是
v4
等参数将根据插件的配置方式进行更改,和设置为页面记录ID等。是,100%。第一种方法,谢谢你,本。你说的“第一种方法”是指我的第二个例子,对吗?