2011-10-08 135 views
4

我想發送一個普通的get請求,它像普通的get請求一樣替換整個頁面,但如果可能的話使用jQuery。我還需要在請求中發送2個參數。如何用params發送get請求而不使用ajax

我不想用結果替換文檔中的某些內容,結果是完整的文檔。

這裏的代碼仍然會發送一個Ajax請求,我的網頁沒有與響應刷新..

$.get({ 
     url: '/swap_games', 
     data: { source: sourceElem, target: targetElem } 
}); 

回答

3

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'); 
}); 

更多信息here

+0

.load不會接受數據: – markhorrocks

+0

是的,實際上它會。看看這個例子,它在普通的網站。另外,我提供了一個鏈接到jquery資源,它也展示瞭如何使用'load()'傳遞數據。 – Gabe

+0

它發出取消請求,但根本沒有取代我的網頁,原來的地方仍然存在。這仍然看起來像是要將結果中的內容替換爲頁面? – markhorrocks

0

你需要它取代了內容的第三函數參數來傳遞。

$.get('/swap_games', { source: sourceElem, target: targetElem }, function(data) { 
     $('html').replaceWith(data); 
}) 
+0

我無法獲得正確的語法。我完整的原始js函數是 – markhorrocks

+1

我不想用結果替換頁面內容的任何部分。結果將是一個完整的文檔,我想它作爲一個正常的請求加載。 – markhorrocks

1
$.get({ 
     url: '/swap_games', 
     data: { source: sourceElem, target: targetElem } 
     success: function(data){ 
      $('html').html(data); 
     }) 
}); 
+0

這仍然需要替換我的頁面內的內容,但我想用結果替換整個文檔。 – markhorrocks

0

我沒有足夠的聲望點數在接受評論答案,但應該注意的是,load()方法在數據存在時執行POST請求作爲一個對象提供,就像它在接受答案的例子中一樣。如果提供了字符串,則執行GET請求。

還應該注意的是,load()和$ .get()方法都是異步的,可能不需要您的情況。你可能要找的是

window.location.href = "http://your_url_with_any_query_parameters"; 

沒有jquery需要。