为什么jqueryajax调用只在I';我在Chrome上调试?
我有一个来自表单提交的简单ajax调用。 它在我调试时工作,即弹出警报,但在运行它时,它不工作 这对我来说似乎有点神秘为什么jqueryajax调用只在I';我在Chrome上调试?,jquery,ajax,Jquery,Ajax,我有一个来自表单提交的简单ajax调用。 它在我调试时工作,即弹出警报,但在运行它时,它不工作 这对我来说似乎有点神秘 $(function(){ $("#signUpForm").submit(function(){ var request = $.ajax({ url:"php/newUser.php", type:"POST" }); request.done(function(m
$(function(){
$("#signUpForm").submit(function(){
var request = $.ajax({
url:"php/newUser.php",
type:"POST"
});
request.done(function(msg){
alert(msg);
});
});
});
如果在表单的处理程序上运行ajax调用,ajax请求将触发,但随后表单将继续提交,从而刷新页面,并且永远不会触发回调函数 相反,您应该在submit handler函数的末尾调用
event.preventDefault()
,以防止浏览器使用新的HTTP请求正常提交表单。为此,需要将事件
作为参数添加到回调函数中,如下所示:
$( "#target" ).submit(function( event ) {
alert( "Handler for .submit() called." );
event.preventDefault();
});
调试时它工作的原因是,当您一步一步地进行时,所有事情都会发生得很慢,而浏览器不会提交表单。如果您在方法中偶然编写了console.log,请检查情况。您没有在该方法中发送任何数据。
$.ajax
request@Victor虽然你在这个案子上是对的,没有理由不使用数据集就不能/不应该发出AJAX请求—这只是一个旁注。因为该文件名看起来像newUser.php
,所以它应该向它传递一些数据:))newUser.php只是回显“hi”;我只是在玩ajax,这很奇怪,因为在代码中,alert msg框会跳起来,但当我在没有调试的情况下实际运行它时,它不会跳起来。