해결책은 혼합물입니다 e.preventDefault()
그리고 Ajax 호출에서 콜백을 사용합니다. 콜백을 사용하는 것만으로도 문제가 해결되지는 않았지만 추가 preventDefault
~로 authenticate
콜백 문제를 기능하고 수정했습니다.
최종 작업 버전은 이제 다음과 같습니다.
define(["jQuery", "kendo", "modernizr", "app/environment"], function ($, kendo, modernizr, environment) {
function authenticate(username, password, callback) {
$.ajax({
url: environment.apiConnection + '/canlogin?userid=' + username + '&password=' + password,
type: 'get',
dataType: 'jsonp',
success: callback,
error: function (x,t,r) {
console.log('error')
}
});
}
function login(canLogin, username, password) {
if (canLogin == false) {
alert('Incorrect username or password');
return;
}
alert('good');
}
return {
viewModel: kendo.observable({
username: null,
password: null,
authenticate: function (e) {
e.preventDefault();
var username = this.get('username'),
password = this.get('password');
authenticate(username, password, function (canLogin) {
login(canLogin, username, password);
});
}
})
}
});