如何限制要通过Ajax发布的JS对象

时间:2018-06-22 12:37:17

标签: javascript json ajax javascript-objects

我有一个应用程序,它通过JSON通过ajax发送消息。这是JS对象:

var message = {
  "message_by": colmn[0].innerHTML,
  "message_date": new Date(),
  "message_recipients": [
    {
      "phone_number": colmn[1].innerHTML,
      "recipient_name": colmn[2].innerHTML
    }
   ],
  "message_text": colmn[3].innerHTML,
  "subscriber_name": "John Doe"
};

然后这样发布:

var url = "http://url/api/sendMessage";
   $.ajax({
           type: "POST",
           url: url,
           data: JSON.stringify(message),
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           processData: true,
           success: function (data, status, jqXHR) {
               console.log(data);
               console.log(status);
               console.log(jqXHR);
               //alert("success..." + data);
               alert("Success. Message sent.");
           },
           error: function (xhr) {
               //alert(xhr.responseText);
               alert("Error. Try again.");
           }
   });

stringified消息可能看起来像这样:

var message = {
            "message_by": "Brian",
            "message_date": new Date(),
            "message_recipients": [{
                        "phone_number": "0700111222",
                        "recipient_name": "Timothy"
                 }, {
                     "phone_number": "0800222111",
                        "recipient_name": "Winnie"
                }],
            "message_text": "Hello! You are invited for a cocktail at our auditorium. ",
            "subscriber_name": "John Doe"
        }

现在是问题所在。消息可以很好地发布到api,但是最近发现某些消息失败,发现失败的消息有100个或更多的消息接收者。它可以正常工作到99。我问一位同事,他说在api上没有任何限制限制。

有没有一种方法可以将对象大小限制为99,并将其余部分推到新对象,但仍将其作为同一ajax发布的一部分?有其他解决方法吗?

1 个答案:

答案 0 :(得分:1)

没有这样的限制。

如果要将邮件收件人限制为99个,可以执行以下操作

validateMessege(message){
  var length = message.length;
  var messegeRep = message.message_recipients.slice()
  for(var i = 0; i < length; i+=99){
    message.message_recipients = messageRep.slice(i, i+99)
    // Your post request here
  }
}