javascript
anglar ajax执行2次的原因,AngularJS与Ajax表单提交需要单击两次
我需要從HTML頁面執行以下活動:
用戶輸入電子郵件和密碼進行注冊
用戶單擊時將表格發送到控制器 Submit
Control使用AJAX創建到RESTful Server的JSON請求,服務器進行相應的響應。
根據服務器的響應,用戶應獲得警報窗口,并register.html在“提交”下方的當前頁面()上顯示一條消息。如果是“成功-已注冊”或“失敗-無法注冊”。
但是,目前它的工作方式如下:1),2),3)正常工作。
用戶在第一次單擊Submit相應的消息時會得到警報窗口。
用戶僅在Submit 再次 單擊時獲得打印的消息,但再次顯示警告窗口。
如果我alert('Something')從JS中刪除,則必須單擊兩次以將消息打印在register.html
另外,我想提醒您注意,單擊兩次也會使服務器調用兩次。它的行為就好像在服務器調用后已暫停,然后打印我應該單擊“提交”的消息一樣。
register.html
Submit
{{msgalert}}
我的JS控制器看起來像這樣 stackoverflow_q3.js
// create angular controller
var register = angular.module('Main-app');
register.controller('registerController', function ($scope, $http, $location) {
// function to submit the form after all validation has occurred
$scope.submitForm = function (isValid, user) {
console.log('Stackoverflow JS func caled');
var regData = {
"email": user.email,
"password": user.password1
};
var jsonData = JSON.stringify(regData);
var request = $.ajax({
url: 'myurl',
type: 'POST',
data: jsonData,
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
dataType: 'json',
complete: function (response) {
console.log(response.responseText);
if (response.responseText == 'success') {
console.log('Registration Success');
alert('Success');
$scope.msgalert = 'Registration Success, Proceed to Login and Continue';
} else if (response.responseText == 'fail') {
alert('registration failed');
$scope.msgalert = 'Registration Failed, Please try again';
}
}
});
};
});
另外index.html我提到了控制器:
知道如何通過一次“提交”單擊即可完成所有這些活動嗎?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的anglar ajax执行2次的原因,AngularJS与Ajax表单提交需要单击两次的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php instanceof 基类,PH
- 下一篇: PageHelper分页插件使用