2013-01-10 78 views
0

好吧,那基本上是我得到的。我也尝试过静态值。jquery ajax只是不工作

$('#submitForm').submit(function() { 
    $.ajax({ 
     type: $(this).attr('method'), 
     url: $(this).attr('action'), 
     data: $(this).serialize(), 
     success: function (data) { 
      console.log(data); 
     }, 
     error: function (data) { 
      console.log(data); 
     } 
    }); 
}); 

我所得到的回应是这样的:

Object {readyState: 0, responseText: "", status: 0, statusText = "error"} 

PHP脚本(只是一个简单的回声)运行为AJAX调用后正常。我究竟做错了什么?我提交的脚本并没有看到我所有的错误,我也没有做XSS。 : - (

我的HTML形式如下:

<form action="http://dev.xxxxxxx.de/users/register" method="post" accept-charset="utf-8" class="form-horizontal" id="submitForm">    <div class="control-group"> 
       <label class="control-label" for="inputUsername">Nickname</label> 
       <div class="controls"> 
        <input type="text" name="username" id="inputUsername" value="" placeholder="Nickname" /> 
       </div> 
      </div> 
      <div class="control-group"> 
       <label class="control-label" for="inputEmail">E-Mail</label> 
       <div class="controls"> 
        <input type="text" name="email" id="inputEmail" value="" placeholder="E-Mail" /> 
       </div> 
      </div> 
      <div class="control-group"> 
       <label class="control-label" for="inputPassword">Passwort</label> 
       <div class="controls"> 
        <input type="password" name="password" id="inputPassword" value="" placeholder="Passwort" /> 
       </div> 
      </div> 
      <div class="control-group"> 
       <div class="controls"> 
        <input type="submit" class="btn" value="Account erstellen" /> 
       </div> 
      </div> 
     </form> 
+1

你可以发布表格html – Musa

+0

看起来你正在尝试为我做一个ajax调用跨域。您正在查看的页面以及您在同一个域上击中的PHP脚本? (相同的端口,相同的域名,相同的子域名,所有内容?) – Chad

+0

不,它不是跨域,一切都在服务器端。 – Megamind

回答

1

你需要告诉浏览器默认情况下不提交表单:

e.preventDefault(); 

所以:

$('#submitForm').submit(function(e) { 
    e.preventDefault(); 
    $.ajax({ 
     type: this.method, 
     url: this.action, 
     data: $(this).serialize(), 
     success: function (data) { 
      console.log(data); 
     }, 
     error: function (data) { 
      console.log(data); 
     } 
    }); 
}); 

否则,在您的AJAX返回之前,您的表单将根据“操作”属性提交。

+0

jquery api说,submit()可以防止默认提交表单。无论如何尝试过,不起作用。 – Megamind

+0

您可以从模板文件中粘贴生成的HTML代替源代码。 – crush

+0

谢谢你,我已经完成了 – Megamind