当前位置: 首页 > 知识库问答 >
问题:

JQuery重定向浏览器而不是在后台执行任务

农英杰
2023-03-14

我有一个名为[设置]的页面-

<form id="createAdmin">
  <div class="form-group row text-center">
    <label for="username" class="offset-md-3 col-md-2">Username</label>
    <div class="col-md-3">
      <input type="text" id="username" name="username" class="form-control form-control-sm">
    </div>
  </div>
  <div class="form-group row text-center">
    <label for="password" class="offset-md-3 col-md-2">Password</label>
    <div class="col-md-3">
      <input type="password" id="password" name="password"
      class="form-control form-control-sm">
    </div>
  </div>
  <div class="form-group row text-center">
    <label for="password_confirmation" class="offset-md-3 col-md-2">Confirm Password</label>
    <div class="col-md-3">
      <input type="password" id="password_confirmation" name="password_confirmation"
      class="form-control form-control-sm">
    </div>
  </div>
  <div class="form-group row text-center">
    <label for="email" class="offset-md-3 col-md-2">Email</label>
    <div class="col-md-3">
      <input type="email" id="email" name="email" class="form-control form-control-sm">
    </div>
  </div>
  <div class="form-group row text-center">
    <label for="first_name" class="offset-md-3 col-md-2">First Name</label>
    <div class="col-md-3">
      <input type="text" id="first_name" name="first_name"
      class="form-control form-control-sm">
    </div>
  </div>
  <div class="form-group row text-center">
    <label for="last_name" class="offset-md-3 col-md-2">Last Name</label>
    <div class="col-md-3">
      <input type="text" id="last_name" name="last_name" class="form-control form-control-sm">
    </div>
  </div>
  <div class="form-group row text-center">
    <div class="offset-md-5 col-md-2">
      <button id="createAdminSubmit" class="btn btn-primary">Create</button>
    </div>
  </div>
</form>

Javascript在表单代码下面,如下所示:

<script>
  $(document).ready(function() {
    $('#createAdmin').on('submit', function(e) {
      e.preventDefault();
      var username = $('#username').val();
      var password = $('#password').val();
      var password_confirmation = $('#password_confirmation').val();
      var email = $('#email').val();
      var first_name = $('#first_name').val();
      var last_name = $('#last_name').val();
      $.ajax({
        type: "POST",
        url: host+'/login',
        data: {username:username, password:password, password_confirmation:password_confirmation, email:email, first_name:first_name, last_name:last_name}
        success: function(response) {
          if(response=="success") {
            // Would return a success message here when it works
          } else {
            // Would return a error message here when it works
          }
        }
      });
    });
  });
</script>

当我尝试提交表单时,它会重定向到具有GET请求(?用户名)的同一页面=

为什么它不在后台运行ajax?它执行GET请求,就好像ajax不存在一样。我正在使用Metronic最新的5管理模板和Laravel 5.7(最新版本)。

F12日志正在报告以下情况:

管理员?用户名=

第591行是:

$(document).ready(function() {

共有2个答案

柴华灿
2023-03-14

已解决!

必须在jquery之后包含。Metronic像大多数开发人员一样在页脚处包含JQuery文件,因此确保在JQuery文件下面包含脚本标记,以便像加载css文件一样首先加载JQuery。我这样做是因为我使用的是Laravel刀片模板引擎:

添加所有javascript后,将yield('customScripts')添加到刀片布局文件页脚。然后,在相应的刀片文件中,添加一个名为CustomScripts的新部分,就像您所做的那样(“内容”),它应该可以工作!

翟黎明
2023-03-14

你的数据和成功之间没有逗号。

data: {username:username, password:password, password_confirmation:password_confirmation, email:email, first_name:first_name, last_name:last_name}

行尾需要一个逗号。

点击F12打开调试窗口,控制台上会报告此类错误,并给出描述和行号。

 类似资料:
  • 问题内容: 之前它运行良好,现在只要运行脚本,它就会打开Firefox,然后什么也不做。当与chromedriver一起运行时,它可以工作。 尝试更新宝石等,但未成功。 问题答案: 最新的Firefox版本将不再与旧版Firefox驱动程序一起使用。要将Watir与Firefox 48+一起使用,您需要下载geckodriver并按照Ruby的说明进行操作。 由于Geckodriver尚未完成功能

  • 我需要在我正在为一个学校项目建立的网站中使用一点PHP。我需要它上传. swf文件。但是当我按下“上传”按钮时,它会在浏览器中打开php文件,而不是运行它,或者显示错误(如果有错误的话)。 这是我的超文本标记语言代码: 它应该在图片和表单上方放置一点文本,放在一个普通的网页上。 接下来是PHP,这是我从W3学校得到的。 我完全不知道为什么它不起作用,我只是在5年不使用超文本标记语言后回到它(我上次

  • 我在用量角器做测试。99%的情况下,不需要实际查看浏览器,测试需要很长时间,而我们感兴趣的只是最终结果。有没有一种方法可以隐藏为测试而打开的浏览器(例如在后台运行)?

  • 我有一个功能,改变货币取决于选择的国家。它只是重定向到相同的页面,但具有不同的值。 脚本: 我想做的第一重定向页面比我想给选择一个国家它有的值。如果选择了俄罗斯而我选择了乌克兰,货币为但选择将停留。我怎么能这样做

  • 问题内容: 我正在寻找一种在客户端(即在浏览器中)进行traceroute的方法。 据我所知,不可能通过Javascript或Flash发送具有任意TTL值的ICMP,UDP或TCP数据包。我知道Flash允许通过Actionscript中的Socket类进行TCP连接,但是它对于traceroute实现似乎没有用。 是开发浏览器插件的唯一解决方案吗? 编辑 :我刚刚发现它已经用Java小程序完成

  • 问题 我今天尝试从PHP7.0升级到7.2,结果服务器上的网站通过浏览器下载,而不是像正常的那样执行。 我的问题 有人能给我一些如何调试的例子吗?还有关于可能发生的事情的其他见解吗? 我的理论 从技术上说,我不知道是什么导致了这种情况,但我的经验告诉我,这是一行,在一个文件中,来自NGinx,需要编辑。 我试过的 我发现这个问题在这里经常被报道。但是解决方案缺少关键信息,例如文件路径,或者它们引用