你好即時通訊使用異步驗證器來檢查電子郵件是否存在於我的數據庫,它檢查,它給了我正確的http請求,它工作正常使用例如在第一次註冊,它會檢查用戶是否存在於我的數據庫中。問題是,例如,當我用來恢復密碼。該文件說:基於異步驗證器的驗證
「如果$使用HTTP則是重要的服務器,以滿足驗證和4xx
以拒絕驗證的狀態水平返回成功的HTTP響應代碼 *」
所以發生在我身上的是當用戶在恢復密碼頁面中插入電子郵件時,它給出了'400 - 錯誤的請求'的迴應,並使表單/輸入無效。我需要改變這個beavihour,因爲當提供400請求來驗證真實性,並且如果響應是200,則驗證是錯誤的。
示例代碼JS:
return {
restrict: 'A',
require: 'ngModel',
link: function (scope, element, attribute, controller) {
controller.$asyncValidators.uniqueEmail = function (email) {
return $http
.post('/api/email/availability', {value: email})
then(function(response) {
//username exists, this means validation fails
return $q.reject('exists');
}, function(response) {
//username does not exist, therefore this validation passes
return true;
})
};
}
}
創建plnkr幫助別人理解你的問題,更好地 –