jquery如何将json数据发送到多个链接?

时间:2011-04-11 23:07:24

标签: jquery json post

我有这段代码:

$.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 个答案:

答案 0 :(得分:3)

您必须多次执行此操作,每个网址对应您要发送到的每个网址。但有捷径:

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's $.each遍历它们并为每个URL执行AJAX POST。

答案 1 :(得分: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'
});

这允许您设置合理的默认值。基本思想可以用于各种目的。

答案 2 :(得分:0)

您必须为每个网址单独调用,尝试使用$ .each多次调用相同的代码。