2013-01-10 131 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