#jquery #json #post
#jquery #json #Публикация
Вопрос:
У меня есть этот код:
$.ajax({
type: "POST",
data: JSON.stringify(formData),
dataType: "json",
url: "http://www.test.com/users/" get_back "",
success: function(t){
alert(t);
}
});
Мне было интересно, как я могу отправлять сообщения по нескольким ссылкам? Должен ли я создать еще одну, $.ajax POST
или я могу просто добавить больше url
полей в тот же 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 $.each перебираем их и делаем AJAX POST для каждого из них.
Комментарии:
1. это сработало. Спасибо. что, если я захочу также на лету изменить
data:
атрибут?2. Мой ответ позволит вам выбрать те значения по умолчанию, которые вам нравятся, и перезаписать их по мере необходимости. 🙂
3. Рад, что смог помочь. Вы могли бы создать массив объектов JSON, каждый из которых имеет свойство data и url, и выполнять итерации по ним.
Ответ №2:
Вы не можете добавить дополнительные поля режима. Литералы объектов JavaScript (например, {foo:'bar'}
) могут иметь только одно значение для каждого ключа. Браузеры, как правило, интерпретируют {url:'http://example.com', url:'http://example.com/page2'}
как {url:'http://example.com/page2'}
.
Функциональность ajax jQuery отправляет только один 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 для вызова одного и того же кода несколько раз.