2012-06-08 49 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; 
    } 
    } 

希望这有助于。