2013-11-21 48 views
0

我看到一個問題,其中我的AJAX調用是只有發生,如果我打破它,然後繼續前進,在Chrome開發工具。也就是說,如果我以常規用戶的身份提交表單,服務將永遠不會受到影響。如果我在$.ajax上設置了一個斷點,然後簡單地在F5上設置斷點,則會進行呼叫。任何想法會導致這種行爲?

有在一個形式是兩個文本框(名字和姓氏)(getUsername)

$('#getUsername').submit(function() { 
    var firstname = $('#firstname').val(), 
     lastname = $('#lastname').val(); 

    authenticationHelper.getUsername(firstname, lastname); 
}); 

然後,呼叫基本上是這樣的,與一對夫婦不同doSomethings()在同一模塊中(他們不」採取任何動作瘋狂)

authenticationHelper = function() { 
    var getUsername = function (first, last) { 
     var firstName = doSomething(first); 
     var lastName = doSomething(last); 

     doGetUsername(firstName, lastName); 
    } 

    var doSomething = function(string) { 
     return string; 
    } 

    var doGetUsername = function (firstName, lastName) { 
     $.ajax({ 
      type: 'GET', 
      url: 'http://localhost/api/user/', 
      data: { first: firstName, last: lastName }, 
      dataType: 'jsonp', 
      success: function() { 
       alert('success'); 
      }, 
      error: function (xhr, status, err) { 
       console.log(xhr + status + err); 
      } 
     }); 
    } 

    return { 
     getUsername: getUsername 
    } 
}(); 
+2

你的代碼是什麼樣的? – putvande

+0

可以請你提供一個代碼示例(js,html)來查看你的代碼的上下文.. thx –

+0

必須看到一些代碼。 –

回答

1

你沒有返回false在您的submit調用,因此getUsername當你不前authenticationHelper.getUsername完成破纔剛剛遞交。

+0

'event.preventDefault()'當然會更好。但是,是的,這是問題所在。 – lonesomeday

+0

我應該在哪裏返回false?在getUsername中? – Tom

+1

提交'匿名函數。或者,可以使用'event.preventDefault()'來代替'return false;',就像@lonesomeday指出的那樣。 –

相關問題