jQuery如何将JSON数据发送到多个链接?

3

我有这段代码:

$.ajax({
  type: "POST",
  data: JSON.stringify(formData),
  dataType: "json",
  url: "http://www.test.com/users/" + get_back + "",
  success: function(t){
    alert(t);
  }
});

我想知道如何向多个链接进行POST请求?我需要创建另一个$.ajax POST,还是只需在同一POST中添加更多的url字段即可?

谢谢

3个回答

3
您需要多次执行此操作,每个要发送的URL都需要执行一次。但是有快捷方式:
var urls = ["http://www.test.com/users/", "http://www.example.com/users/", "http://www.test.org/users/"]

$.each(urls, function(index, value) {
   $.ajax({
      type: "POST",
      data: JSON.stringify(formData),
      dataType: "json",
      url: value + get_back + "",
      success: function(t){ alert(t); }
   });
});

我们将您想要POST的所有URL放入JavaScript数组中,然后使用jQuery的$.each进行迭代,并对每个URL进行AJAX POST。

可以了,谢谢。如果我想实时更改 data: 属性怎么办? - Patrioticcow
我的答案将允许您选择任何默认设置,并根据需要进行覆盖。 :) - theazureshadow
很高兴能够帮到你。你可以构建一个JSON对象数组,每个对象都有一个数据和一个URL属性,并通过它们进行迭代。 - Adam

1

您不能添加额外的模式字段。JavaScript对象字面量(例如{foo:'bar'})每个键只能有一个值。浏览器倾向于将{url:'http://example.com',url:'http://example.com/page2'}解释为{url:'http://example.com/page2'}

jQuery的ajax功能仅发送单个ajax请求。以下代码将允许您创建默认请求对象,并根据需要覆盖其成员:

function createAjaxer(o) {
  var defaults = $.extend({}, o);
  return {
    send: function(o2) {
      var instance = {};
      $.extend(instance, defaults, o2);
      $.ajax(instance);
    }
  }
}

您可以按照以下方式使用它:

var a = createAjaxer({
  type: 'post',
  dataType: 'json',
  success: function() { console.log(arguments); }
});

a.send({
  data: 'yar=5',
  url: 'http://stackoverflow.com'
});

a.send({
  url: 'http://stackoverflow.com'
});

这使您能够设置合理的默认值。基本思想可重复用于各种目的。


0
你必须为每个URL进行单独的调用,尝试使用$.each多次调用相同的代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接