【问题标题】:jquery how to send json data to multiple links?jquery如何将json数据发送到多个链接?
【发布时间】:2011-04-11 23:07:23
【问题描述】:

我有这个代码:

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

我想知道如何发布到多个链接?我是否必须创建另一个 $.ajax POST 或者我可以在同一个 POST 中添加更多 url 字段?

谢谢

【问题讨论】:

    标签: jquery json post


    【解决方案1】:

    您必须多次执行此操作,每个要发送到的 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); }
       });
    });
    

    我们将您想要发布到的所有 URL 放入一个 JavaScript 数组,然后使用 jQuery's $.each 遍历它们并对每个 URL 执行 AJAX POST。

    【讨论】:

    • 那行得通。谢谢。如果我还想动态更改data: 属性怎么办?
    • 我的回答将允许您选择您喜欢的任何默认值,并根据需要覆盖它们。 :)
    • 很高兴我能帮上忙。你可以构建一个 JSON 对象数组,每个对象都有一个数据和一个 url 属性,并遍历它们。
    【解决方案2】:

    您不能添加额外的模式字段。 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'
    });
    

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2013-03-06
        • 1970-01-01
        • 2013-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-28
        • 1970-01-01
        • 2012-12-06
        相关资源
        最近更新 更多