2012-06-08 80 views
1

我有一個簡單的搜索應用程序,我試圖使用AJAX爲了導航到不同的響應。AJAX腳本更改導航的響應

我的問題很簡單,我確信有一個簡單的解決方案,但我根本無法找到它。

我發送一個新的要求是這樣的:

xhrObj.open('post', 'search.do', false); 
xhrObj.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 
xhrObj.send('id=1'); 

我想的是,這個請求和呼叫必要的業務邏輯後,瀏覽器將視圖更改爲在後臺指定的新頁結束。 取而代之的是,我在響應中收到頁面HTML代碼,但此頁面的導航永遠不會發生。

我的印象是,如果async參數設置爲false,流程將按照我的預期行事。

如何讓我的JS腳本在AJAX調用後將其導航到新頁面。請記住,我不能使用location.href跳轉到新頁面,因爲這個新頁面是在服務器上建立的.JSP版本。

回答

0

如果你想有類似guthub的東西,你需要HTML5 History API。如果沒有HTML5 History API,你不能在沒有進行任何重定向的情況下操作URL(在JS的幫助下)。

通常你可以在URL中使用散列(domain /#hash/blabla/bla),但它也不好。

+1

HTML5是一個流行詞。 StackOverflow是一個技術網站,不要猶豫,使用正確的話:)(歷史API)。 –

+0

,我確定你知道每個人都在稱之爲「HTML5歷史API」 – user1016265

+0

你可以稱之爲HTML5歷史API或歷史API,它是一樣的。單獨的HTML5就不一樣了。指定新的東西是一個流行詞。 –

0

也許你應該從search.do請求一個url然後這樣做。

xhrObj.onreadystatechange=function() { 
    if (xhrObj.readyState==4 && xhrObj.status==200) 
    { 
    window.location=xhrObj.responseText; 
    } 
    } 

希望這有助於。