小编Ger*_*rdo的帖子

我可以在Angular JS promise api中使用jQuery.ajax吗?

我在角度服务中有一个ajax函数,它根据后端服务检查用户的凭据.我已经简化了这个电话了.当我使用$ http服务发出AJAX请求时,promise API可以正常工作:

function isOnline(){
    return $http.get(constants.dataUrl)
           .success(function(){return})
           .error(function(){return;});
}
function checkCredentials(){
    var online = isOnline();
    var checkCreds = online.then(function(){
        alert("Get succeeded");
    },
    function(response){
        alert("Get did not succeed");
    });
    return checkCreds;
}  
Run Code Online (Sandbox Code Playgroud)

我看到当时定义的函数调用了.当我使用jQuery ajax方法时,解析和延迟方法似乎没有传播并在online.then中触发正确的方法.以下代码不起作用:

function isOnline(){
    var defer = $q.defer();

    $.ajax({
      url: constants.dataUrl,
      dataType: 'json',
      beforeSend: function (xhr) {
        xhr.setRequestHeader('Authorization', basicAuthenticationToken());
      },
      error: function (xhr, ajaxOptions, thrownError) {
        alert("I am not online");
        defer.reject("I am not online");
      },
      success: function (data) {
        alert("I am online");
        defer.resolve(data);
      }
    });

    return defer.promise;
} …
Run Code Online (Sandbox Code Playgroud)

jquery angularjs cordova

3
推荐指数
1
解决办法
2037
查看次数

标签 统计

angularjs ×1

cordova ×1

jquery ×1