0

我有一个 REST Url http://localhost/issues,向我展示了一个用于查询错误跟踪系统问题的搜索表单。搜索表单有一个带有name="f". 形式的作用是action="/issues"method=GET。因此,如果我在文本字段中键入“foobar”,我将被重定向到http://localhost/issues?f=foobar.

为了防止页面重新加载,我将 AJAX 与 jquery 一起使用。所以我曾经$(document).on('submit',...)将一个AJAX查询函数绑定到表单的提交函数上。我使用萤火虫来证明,jquery 发送请求并且没有重新加载页面。我还具有将响应结果填充到浏览器中显示的站点的功能。第一次搜索尝试一切正常。

但是,如果我在文本字段中键入另一个搜索字符串“anotherfoobar”并重新发送请求,请求 URL 是http://localhost/issues?f=foobar&f=anotherfoobar,因此搜索参数仅附加到 URL,而不是更新,因为我认为它会发生。

我已经在 stackoverflow 上阅读了有关“散列”URL 参数以防止这种行为的内容,但不完全理解发生这种情况的原因和原因以及“散列”的确切含义。也许这对我来说不是正确的解决方案。所以我恳请有人解释我如何解决这个问题。

4

1 回答 1

0

我已经解决了!不要问到底是怎么回事,我做的是以下几点:

AJAX 响应是整个网页,因为我会通过重新加载页面来获得它。使用 jquery 我选择一个包含搜索表单和结果的 div。

我只是为结果定义了一个 div,并且只更新了结果 div 的内容。这样做之后,一切正常,结果 div 会随着多次搜索尝试而更新。

另一个不知道我在做什么的情况,但我做得很好;)

也许有人仍然可以向我解释我的错误,以便智慧上升。

于 2013-03-28T18:26:34.730 回答