#jquery
#jquery
Вопрос:
Я хочу отправить обычный запрос get, который заменяет всю страницу точно так же, как обычный запрос get, но с использованием jQuery, если это возможно. Мне также нужно отправить 2 параметра в запросе.
Я не хочу заменять какое-либо содержимое в моем документе результатом, результатом является полный документ.
Код здесь все еще отправлял ajax-запрос, и моя страница не была обновлена ответом..
$.get({
url: '/swap_games',
data: { source: sourceElem, target: targetElem }
});
Ответ №1:
В jQuery есть load()
метод, который делает это за вас.
.load( url, [data,] [complete(responseText, textStatus, XMLHttpRequest)] )
Пример выглядит следующим образом:
$('html').load('/swap_games', data: { source: sourceElem, target: targetElem } );
Или с обратным вызовом:
$('html').load('/swap_games', data: { source: sourceElem, target: targetElem }, function() {
alert('load complete callback');
});
Подробнее здесь
Комментарии:
1. Да, на самом деле так и будет. Посмотрите на пример, он находится на обычном сайте. Кроме того, я предоставил ссылку на ресурс jquery, который также показывает, как передавать данные
load()
.2. Он отправил запрос get, но вообще не заменил мою страницу, исходное место осталось на месте. Это все еще выглядит так, как будто он хочет заменить содержимое НА странице результатом?
Ответ №2:
$.get({
url: '/swap_games',
data: { source: sourceElem, target: targetElem }
success: function( data ){
$('html').html( data );
})
});
Комментарии:
1. Это все еще требует замены содержимого на моей странице, но я хочу заменить весь документ результатом.
Ответ №3:
Вам нужно передать третий параметр функции, который заменяет содержимое.
$.get('/swap_games', { source: sourceElem, target: targetElem }, function(data) {
$('html').replaceWith(data);
})
Комментарии:
1. Я не могу правильно использовать синтаксис. Мои полные оригинальные функции js
2. Я не хочу заменять какую-либо часть содержимого моей страницы результатом. Результатом будет полный документ, и я хочу, чтобы он загружался как обычный запрос get.
Ответ №4:
У меня недостаточно очков репутации, чтобы прокомментировать принятый ответ, но следует отметить, что метод load() выполняет POST-запрос, когда данные предоставляются как объект, как в примере принятого ответа. Если указана строка, выполняется GET-запрос.
Следует также отметить, что оба метода load() и $.get() являются асинхронными и, вероятно, не нужны для вашего случая. То, что вы, вероятно, искали, это
window.location.href = "http://your_url_with_any_query_parameters";
Jquery не требуется.
Комментарии:
1. Это может работать с обычными параметрами, но не будет передавать списки массивов.