【问题标题】:JQuery $.post only works sometimesJQuery $.post 有时只能工作
【发布时间】:2017-08-17 07:01:54
【问题描述】:

我有以下功能:

function Login() {
    var username = document.getElementById('username').value;
    var password = document.getElementById('password').value;
     $.post("Login.php", {
             username: username,
             password:password
         }, function(data) {
             console.log(data);
         });
}

我遇到的问题是该函数有时只运行。我检查了是否是在函数运行时未加载 JQuery 的情况,但确实如此。我输入的文本并不重要,它只是有时才有效。我认为这与$.post 函数有关。

请查看以下 Chrome DevTools 快照:

有时它会执行上述操作,函数将在第 67 行停止/结束。

而其他时候它会一直通过并工作。

上图显示我使用与之前的图像相同的输入,但这次函数在第 67 行停止/结束。

这可能是什么原因造成的?我认为这与变量本身没有任何关系。单击按钮时调用该函数。

更新!

我在控制台中看到了这个错误。该页面也在重新加载,所以可能在发布请求可以通过网页之前重新加载,但我不知道如何解决这个问题。

【问题讨论】:

  • 调试时是断点吗?
  • @AbdullahKhan 是的。
  • 确保你的js文件会在这个函数之前加载。
  • 试试$(document).ready(function() {//yourcode});
  • 当输入与先前执行的$.post 相同时,服务器调用将被从缓存中获取结果替换。您可以通过在代码前添加$.ajaxSetup({ cache: false }); 或将当前日期作为输入之一来解决此问题。更多herehere

标签: javascript jquery html ajax


【解决方案1】:

我找到了答案。有两个错误:

  1. 与密码字段相关的 html 编码存在问题。

  2. login.php 文件中有一个 password_verify() 函数需要一段时间才能运行,从而导致发布失败。

【讨论】:

  • 所以这个问题的标题是错误的。 $.post 总是有效。这不是 jQuery 问题(显然),而是服务器问题 aperently.. 你可以重命名标题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多