【问题标题】:How to prevent from json-server to reload page after post?如何防止 json-server 在发布后重新加载页面?
【发布时间】:2023-04-01 21:41:01
【问题描述】:

我正在使用 Json Server 来模拟 API 请求并且我遇到了一个烦人的行为,我所做的每个帖子都会导致页面重新加载...我已经阅读了他们的 api 文档但没有来什么都有。我正在使用一个简单的 jquery ajax 请求,如下所示:

$.ajax({
url: 'http://localhost:3000/list',
type: 'post',
data: itemObj,

dataType: 'json',

success: function (itemObj) {
 
  todoListArr.push(itemObj);
  createMarkup(); 
  $(this).val(''); // clear input
  return false;

  }
});

我已经尝试过 e.preventDefault() 但它与 ajax 调用无关 - 这是导致它的 json-server...我用于运行服务器的命令是: npx json-server --watch db.json 也试过 npx json-server

【问题讨论】:

  • 我敢打赌,这是在表格内。 return false 内部成功回调不会返回到外部函数。同样,如果您在success 中调用event.preventDefault(),则为时已晚。它会在事件完成后很长时间触发
  • 谢谢 - 我没有使用表单 - 只是带有 onKeyPress 事件的普通输入 - 问题出在 Json 服务器上,因为任何其他模拟 api 都可以正常工作
  • 这能回答你的问题吗? How to prevent page reload when using $ajax?

标签: jquery json-server


【解决方案1】:

我有同样的问题,如果你使用 VS 代码尝试不使用实时服务器扩展(禁用它),它应该可以正常工作。

【讨论】:

    【解决方案2】:

    这可能是因为实时服务器扩展或类似的刷新 html 页面,如果您正在使用例如 vs 代码实时服务器。另一种可能性是,如果您正在使用表单,并且表单内部或表单外部的某些内容正在侦听可能导致事件冒泡的相同提交事件,那么您也可以尝试e.stopPropagation();

    【讨论】:

    • 谢谢 - 我添加了 return false - stopPropagation 与它无关......问题在于 Json 服务器,因为任何其他模拟 api 都可以工作......
    • 您是否尝试禁用您可能在 Ide 上使用的任何实时服务器扩展?
    • 谢谢,我正在另一个端口上运行实时服务器......你认为它为什么应该中断?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 2017-07-07
    • 2015-07-04
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多