【发布时间】:2013-12-03 14:11:33
【问题描述】:
我在下面的 javascript 中遇到问题,其中没有调用 $.ajax 调用。 alert('foo') 确实发生了,但随后数据调用被完全跳过并且从未到达回调(永远不会得到 alert('success!')。我不完全理解回调,但这似乎应该可以工作。
编辑
将脚本编辑到我目前的位置,因为我读过这种方式是更好的做法。不过,我可以进入authenticate(),它在url:[...] 上中断,但实际上从未进行过ajax 调用。我尝试删除 return 只是为了看看这是否是问题所在,但它产生了相同的结果。
define(["jQuery", "kendo", "modernizr", "app/environment"], function ($, kendo, modernizr, environment) {
var authenticate = function (username, password) {
return $.ajax({
url: environment.apiConnection + '/canlogin?userid=' + username + '&password=' + password,
type: 'get',
dataType: 'jsonp'
});
}
var canLogin = function(data) {
alert('good');
}
return {
viewModel: kendo.observable({
username: null,
password: null,
authenticate: function () {
var username = this.get('username'),
password = this.get('password');
authenticate(username, password).done(canLogin);
}
})
}
});
【问题讨论】:
-
jsonp请求无法同步
-
我明白了,谢谢。有没有人有正确的方法来做我想做的事情?
-
您是否在 ajax 行收到脚本错误?或者
environment.apiConnection有什么好玩的? -
否定的,我什至只是尝试对其进行硬编码并得到相同的结果。我刚刚尝试了一项更改,将 canlogin 更改为不接受回调和
return $.ajax[...]。然后我这样称呼它canLogin(username, password).done(authenticate),其中身份验证看起来就像alert('foo')...无论如何,结果相同。
标签: javascript jquery ajax requirejs kendo-mobile