【问题标题】:How to send a GET request with a specific query string to my page using Jquery?如何使用 Jquery 向我的页面发送带有特定查询字符串的 GET 请求?
【发布时间】:2013-01-23 15:43:44
【问题描述】:

This code 会在您单击元素时切换元素的颜色。但是我如何发送一个 GET 请求,在第一次切换时使用 query string ?toggle=True,在第二次切换时使用 ?toggle=False

【问题讨论】:

  • 我试过了,但无法显示查询字符串:demo
  • 除了不发送 False 版本(因为您只在两个切换功能之一中使用get)......这有效。
  • 当我什至无法让第一个工作时,我为什么要同时使用它?
  • 第一个确实有效。我可以在浏览器的开发人员工具的 net 选项卡中看到正在发出的请求。

标签: javascript jquery query-string


【解决方案1】:

哦,我可以看到它出现在 Firebug 中,但不在页面的 url 中。知道为什么吗?

除非您让浏览器加载一个全新的页面,否则发出请求和更改地址栏中的 URI 是两件不同的事情。

如果您想这样做,那么您应该忘记使用客户端 JavaScript 并移动您的逻辑服务器端并使用常规链接。

在服务器端逻辑中,查询字符串参数的值将用于确定 div 的class(用于设置样式)和链接的href(即如果它有查询字符串中的 True 或 False)。

如果您想避免加载新页面,那么您正在查看两个单独的步骤。

你已经拥有的第一个(使用JS改变样式)。

剩下的就更复杂了……

首先,您需要服务器端逻辑,以便查询字符串中的 True/False 正确设置页面的初始状态。这将与前面方法中描述的逻辑相同。

然后,您需要更新 URI,使其与将在您将当前页面更改为的状态下加载页面的 URI 匹配。这是使用History APIpushState 和朋友)完成的。在this question上有更多关于这个主题的细节。

如果您想将更改通知服务器,则需要使用jQuery.get,以及更新页面并更改地址栏中的 URI。为了提高效率,您可能应该添加一个额外的查询字符串参数(这样您就可以从正常的页面加载中判断它是否来自 Ajax)并让服务器在看到该参数时返回一个简单的确认而不是整个 HTML 文档。

【讨论】:

  • 谢谢!您能否在答案的开头包含this code 并说它仅在开发工具中可见?这对苹果来说更容易找到问题的答案。
【解决方案2】:

只需使用 jQuery 的 get 方法来完成,或者在切换函数中自己完成。

【讨论】:

    【解决方案3】:

    一个实用但非常基本的解决方案可能是使用局部变量作为计数器。如果计数器是偶数,则发送 True,如果奇数,则发送 False。

    每次点击增加计数器:)

    【讨论】:

    • 虽然毫无意义。 jQuery 切换功能(从问题链接的代码正在使用)已经让您区分奇数和偶数情况。这只是重复了检测,因此毫无价值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 2017-03-04
    • 1970-01-01
    • 2015-03-22
    • 2020-12-02
    • 1970-01-01
    相关资源
    最近更新 更多