【问题标题】:how to make my button fire as if it is the first time it has been cliked如何让我的按钮像第一次被点击一样触发
【发布时间】:2017-06-10 15:26:52
【问题描述】:

我正在处理我正在尝试生成报价表单 api 的项目。这是我的语法,

$("#btn").on("click",function(){
    $.getJSON("https://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1",function(a){
   $("#display").append(a[0].content);
    })
 })

我面临的问题是每次单击按钮时都没有得到新的 json 返回,而是生成了相同的报价。我该如何解决?

【问题讨论】:

  • 检查您的开发工具中的响应。每次都返回相同的 JSON 吗?浏览器缓存了吗?
  • @Damon,你能给我更多关于如何去做的见解吗?
  • 你用的是什么浏览器?在大多数现代浏览器中,您可以右键单击“检查”并找到“网络”选项卡。发出您的 ajax 请求,请求和响应将显示一个新条目。你从服务器得到什么状态码?反应是相同的还是不同的?如果每次都得到相同的响应并且状态码为 200(未缓存),则问题出在请求本身(获取随机报价的语法错误)或 API 本身。
  • 另外,我只是尝试在控制台中记录这个请求 3 次(没有修改),每次都不一样。 jQuery 会自动缓存它,所以这不是问题。
  • @Damon 我正在使用谷歌浏览器。我刚刚检查了网络选项卡。每次我提出请求时,网络选项卡上都会列出一个新行。它的状态代码是 200(当然),我将鼠标悬停在大小上,它说来自磁盘缓存

标签: javascript jquery ajax onclick


【解决方案1】:

这可能是因为您的浏览器正在缓存响应。

我建议您在请求中添加时间戳作为参数,例如

$.getJSON("https://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1&t=" + new Date());

您也可以查看这个问题:How to set cache false for getJSON in JQuery?

【讨论】:

  • 你确定吗? Your codemy suggestion.
  • 非常感谢。你说的对。我直接将 getJSON 的缓存设置为 false 并且它起作用了
猜你喜欢
  • 2014-09-19
  • 1970-01-01
  • 1970-01-01
  • 2021-11-07
  • 1970-01-01
  • 2020-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多