как отправить get-запрос с параметрами без ajax

#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. Это может работать с обычными параметрами, но не будет передавать списки массивов.