JQuery, как отправить данные JSON на несколько ссылок? - PullRequest
3 голосов
/ 12 апреля 2011

У меня есть этот код:

$.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 или я могу просто добавить больше полей url в тот же POST?

Спасибо

Ответы [ 3 ]

3 голосов
/ 12 апреля 2011

Вы должны сделать это несколько раз, по одному для каждого 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, которые вы хотите POST, в массив JavaScript, а затем используем jQuery's $ .each для их итерации и выполнения AJAXПОЧТА каждому.

1 голос
/ 12 апреля 2011

Вы не можете добавить дополнительные поля режима.Литералы объекта JavaScript (например, {foo:'bar'}) могут иметь только одно значение для каждого ключа.Браузеры склонны интерпретировать {url:'http://example.com', url:'http://example.com/page2'} как {url:'http://example.com/page2'}.

Функциональность jjuery 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 голосов
/ 12 апреля 2011

Вы должны делать отдельные вызовы для каждого URL, попробуйте использовать $ .each для вызова одного и того же кода несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...