【问题标题】:How to send very big amount of data to server using ajax如何使用ajax向服务器发送大量数据
【发布时间】:2017-08-20 14:14:25
【问题描述】:

我正在练习 ajax,想向服务器发送大量数据(例如,我想为一个帖子制作标签,最多可以有 20 个标签)。目前我所做的只是将每个标签与它们之间的特定符号连接起来,然后在服务器中过滤它并将其再次转换为许多标签,但我认为这不是自然的方式。那么使用 ajax 向服务器发送 30 - 40 个条目的最佳方式是什么。

更新(正如一些人建议的那样,我正在展示 js 代码示例):

$(document).ready(function(){
    var tagsToSend = "tag1%tag2%tag3%tag4%tag5%tag6%tag7%tag8%tag9%tag10%tag11%tag12%tag13";
     $.ajax({
        url: "test.php", 
        method: "POST",
        data: {
            tags: tagsToSend
        },
        success: function(result){
            alert(result)
        }
    });
})

所以基本上在服务器中,我将遍历给定的标签字符串并过滤每个标签。我想要更自然的方式。

【问题讨论】:

  • 你应该使用 JSON。
  • @SLaks 是的,但是如何在 JSON 中输入 40 个条目? (除了手工制作整个 JSON)
  • @Banned:你在找JSON.stringify
  • 40 个条目不是很大。除非你有几万,否则你没什么好担心的。
  • @Banned 地图中的 40 个条目非常小。如果不了解数据的来源,我们就无法说出您将如何生成它。只需将其创建为普通的 JS 对象,然后将其字符串化即可。

标签: javascript jquery ajax server


【解决方案1】:

我认为更好的方法是发送标签作为 json 数组,而不是 GET 参数。像这样的:

var postData = {};
postData['tagsToSend'] = ["tag1", "tag2", ...];

在你的 ajax 配置中:

data: JSON.stringify(data)

现在,您可以在 php 文件中获取 json 并将其解析为 php 数组。 这可以帮助您向服务器发出更具可读性和更清晰的请求。

【讨论】:

  • 而不是数据:JSON.stringify(postData) 我不能放 postData。像这样:$ajax ..., postData, ...
  • @Banned 我的经验有限;但是,我会说这取决于您的数据。如果您有一个调查并且想要将其发送到服务器,那么您有两个选择。通过 post/get 发送所有答案或通过 post/get 发送“调查对象/数组”。调查非常类似于对象,因此您可能会创建一个对象。将此应用于您的案例,您有一堆相似的数据,因此它非常“类似数组”,您可能应该通过 post/get 发送一个数组(如 hamed 所示)。
猜你喜欢
  • 2011-09-17
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-12
  • 1970-01-01
  • 2017-07-21
相关资源
最近更新 更多