繁体   English   中英

如何在使用jQuery.ajax时限制/指定json响应

[英]How to limit/specify the json response when using jQuery.ajax

所以我最近才开始在jQuery中使用ajax。 我想知道是否可以限制或指定您想要从响应中返回的内容。

所以说我有以下内容,我只想得到前三个人或100人中的最后三个人。

$.ajax({
   type: "GET",
   url: "/people"
   dataType: "json",
   success: function(data) {
      // Do some awesome stuff.
   }
});

现在,我知道你可以使用pas和可选的数据对象。 这个数据对象可以用来限制或指定我想要的响应吗?

谢谢你的帮助!

您应该在服务器端执行过滤器。 传递参数使用data

$.ajax({
   type: "GET",
   url: "/people",
   data: {limit: 3, order: 'desc'}, 
   dataType: "json",
   success: function(data) {
      // Do some awesome stuff.
   }
});

然后在服务器端,根据limitorder返回响应。

是的,您可以使用'data'参数将参数传回服务器,指示您要返回的记录。 我通常使用分页来获取行1-10或21-30。 这要求您的服务器逻辑理解从所需的参数值返回正确数量的数据。 如果您没有控制权(服务器总是向您发送100条记录),那么在您的成功处理程序中,您将手动提取所需的3条记录。

$.ajax({
 type: "GET",
 url: "/people"
 dataType: "json",
 data: {
   minRow: 1,
   maxRow: 10
 },
 success: function(data) {
    // Do some awesome stuff.
 }
});

您必须根据您的响应类型限制服务器端的结果。 如果响应是JSON,你可以进行for循环,使其停在第3个结果。 我个人会去服务器端,因为我会减少响应大小。

如果你选择做这个客户端:

成功回调的第一个参数是从服务器返回的数据。

由于您期望从服务器返回的数据类型是JSON,因此将返回JavaScript对象。 您可以像在JavaScript中一样访问第一个或最后一个3个人。

例如,如果来自服务器的响应采用以下形式:

{ 
    "people" : [
        { name: "Foo" },
        { name: "Bar" },
        { name: "Baz" },
        // and so on...
    ]
} 

您可以访问第一个或最后3个人,如下所示:

$.ajax({
   type: "GET",
   url: "/people"
   dataType: "json",
   success: function(data) {
      // Assuming there are 100 people in the "people" array
      // The first three people 
      console.log( data.people[0] ); // "Foo"
      console.log( data.people[1] ); // "Bar"
      console.log( data.people[2] ); // "Baz"

   } 
});

如果我明白了.....

我通常在ajax请求中发送数据。 在你的情况下,我发送这个:

 url:'addres'
 data: 'from='+value_from+'&to='+to;
 type:'post'

在服务器端,你可以从中获取或者类似的东西(如果你想要的数量,或其他选项),并根据你想要的结果做出反应

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM