当前位置: 首页 > 面试题库 >

更新AJAX通话的URL?

徐晔
2023-03-14
问题内容

现在,使用AJAX的最大问题是,如果我在一个页面上使用AJAX,请转到另一个页面,然后使用浏览器的“后退”按钮返回使用AJAX更改的所有内容。

我曾考虑过使用jQuery
Addresss
插件来解决该问题,但我不喜欢它仅用“#whatever.html”来修改URL而不是完全更改它。

理想情况下,当我进行相关的AJAX调用时,我希望URL从“ www.example.com/p:2/”到“ www.example.com/p:3/”。

这是可能吗?


问题答案:

不,这是不可能的。

我希望您意识到您正在尝试解决一个极其困难的问题。

假设您的网址看起来像

http://example.com/mypage/

如果您以编程方式将窗口位置更改为

http://example/mypage/1/

浏览器将接管并尝试导航到该页面,然后出现了您喜欢的ajax代码!

那有什么选择呢?您使用URL片段。

假设您有一个这样的网址,

http://example.com/anotherpage/#section

浏览器将首先加载http://example.com/anotherpage/并尝试查找名为“
section”的锚点并滚动到该位置。此行为被“地址”插件利用。这类似于那些“滚动到顶部”链接的工作方式。

因此,如果您在页面上

http://example.com/mypage/

并将网址更改为

http://example.com/mypage/#1

浏览器不会加载新页面,而是尝试找到名为“ 1”的锚点并滚动到该锚点。

即使您已设法将片段添加到URL,也并不意味着工作已完成。如果用户按下“后退”按钮,则DOM将被重置,您将必须解析这些片段并重新创建DOM。绝对是不平凡的。



 类似资料:
  • 问题内容: 我将用户输入(在这种情况下,只是数量和产品代码)传递给php脚本,以通过ajax存储到会话数组中。我希望,每次用户单击“提交”并进行ajax调用时,数量和产品代码都会添加到会话数组中。但是现在发生的是,每次它更新会话中的现有数据时。因此,仅存在一对数据。 这是我的ajax脚本: 我的PHP sendToCart.php 问题答案: 每次进行ajax调用时,您都会覆盖会话变量。 您需要读

  • 问题内容: 我想从Flash调用网页并使用从网页返回的数据(纯文本或XML)。我看到使用NetConnection可以连接到Web服务,但是我只想调用一个普通的旧网页。 好像我设法做到了一段时间,但是对于我自己的一生,我无法在网络上找到答案。有谁知道在Flash中调用网页并取回数据的功能/代码是什么? 谢谢, 问题答案: 您需要做的就是使用URLLoader。

  • 问题内容: 既然大多数现代浏览器都支持AJAX和客户端请求,而无需执行POST,那么POST(表单发布)的作用是什么? 在某些情况下或一般规则下,始终将POST优先于XmlHttpRequest吗? POST所做的只是将可变键值对放在服务器头内部。我能想到的POST的优点是大量的数据和移动浏览器。还有很多我想念的吗? 注意,我知道您可以通过AJAX调用执行POST,我主要是在谈论标签 问题答案:

  • 我认为这是一个简单的问题。我不熟悉jQuery。我正在尝试制作脚本,这样当您单击图像时,ajax将调用php文件,该文件将更新mySQL数据库。 我的脚本: HTML: PHP文件: 出于某种原因,完全没有回应。数据库保持不变,html页面没有任何变化。代码是否有问题,或者我无法通过ajax更新数据库?

  • 问题内容: 我正在尝试将隐式reCaptcha实施到网站上。但是我无法正常工作。这是我在做什么: 标头 form.php script.js contact.php 如果g-recaptcha-response不为null,则后端(contact.php)可以正常工作。但是我的问题是,当我尝试执行g-recaptcha- response(在var字段和test中)时,它总是空的。当我在表单上显示

  • 问题内容: 我设计了一个使用AJAX的网站。我有一个名为store.php的PHP页面,该页面接受POST方法发送的数据并将其存储在数据库中。 如何在store.php中实现身份验证?我只希望登录到我的网站的用户使用store.php。 目前,我正在使用htaccess重定向对store.php的请求,但我认为这不是一个好的解决方案。 问题答案: 对服务器脚本的任何AJAX调用仍将在请求中包含会话