我需要使用ajax驱动的网页,这样我就可以在URL中传递id或id,它只会根据传入的id(ids)显示结果。对于旧的cgi页面,我能做到:http://myurl?id=1, 有没有办法为Ajax页面执行此操作? 谢谢,
大卫
答案 0 :(得分:1)
最简单 - 使用锚点和hashchange
事件来修改URL的状态(你将像IE 6和7那样mostly need a shiv for older browsers)。首次加载页面时,解析哈希并通过ajax加载您需要的内容。 (帮助Ben Alman's jQuery bbq
plugin的库的示例。)在这种情况下,您的URL将如下所示:
http://example.com/entry/point#/my/app%3Fq=1
Neater - 对于不支持新HTML5优点的浏览器,在页面更改history
API时使用新的for newer browsers到pushState
并在hashchange
上使用。 (有助于此的库的示例是Ben Lupton's History.js plugin)。您对新浏览器的网址如下所示:
http://example.com/my/app?q=1
虽然不支持新API的浏览器的网址会看到hashchange
网址。
最好 - 使用完整的路由或MVC框架,不要重新发明轮子。示例包括但不限于:
请注意,使用较新的history
API,您确实应该确保所有网址都可以在没有JavaScript的情况下实际访问和使用。 (因此,如果您将http://example.com/my/app?q=1
推送到历史记录堆栈,您应该能够在浏览器的地址栏中输入该URL,然后去那里。)
答案 1 :(得分:0)
当然,使用get请求创建XmlHttpRequest并在url字符串上添加参数,就像调用页面时一样。你需要使用javascript“制作”你的网址。
如果使用jQuery,你可以使用$ .get()方法。
如果使用本机DOM方法,则需要使用适当的url和回调创建XMLHttpRequest。
答案 2 :(得分:0)
如果你可以使用JSP,这将有效...
<body onload='initViaAjax();'>
<div id='insertHTML'></div>
<input id='passedID' type='hidden' value='<%=request.getParameter("id")%>'/>
getParameter将填充您的查询字符串id值。 onload事件可以访问该值并在ajax调用中使用它。 ajax结果可以推送到div标签中。