如何将 onSuccess 和 onFailure 添加到 getJSON()?

How to add onSuccess and onFailure to getJSON()?

以下代码向服务器发出 API 调用并获得响应 JSON。然后它将 JSON 对象转换为一个字符串,并使用相应的 jQuery 函数对其进行解析,并将其存储到本地存储并加载页面。我想在成功时执行此操作,并在失败时抛出错误消息。我尝试了 .done().fail() 函数,但它抛出了一个未捕获的表达式错误。

 $.getJSON(apiURL,

                {'call':'login','email':uname, 'pwd':password},

                function(data){

                   localStorage.setItem('testObject', data.id);                   

                   $.ui.loadContent("home", null, null, "fade");  

                }
            );

谁能告诉我如何将 onSuccess 和 onFailure 添加到这段代码中?

I tried .done() and .fail() functions but it throws an uncaught expression error.**

.done.fail 确实是您要执行此操作的方式,听起来您尝试使用它们的代码存在语法错误。

$.getJSON(apiURL, { 'call': 'login', 'email': uname, 'pwd': password })
    .done(function() {
        // Handle success
        var obj = JSON.stringify(data);                 // <=== These lines are
        var parsed = JSON.parse(obj);                   // <=== completely pointless

        localStorage.setItem('testObject', parsed.id);

        //alert(localStorage.getItem('testObject'));

        $.ui.loadContent("home", null, null, "fade");
    })
    .fail(function() {
        // Handle failure
    });

尝试使用

$.getJSON(apiURL, { 'call': 'login', 'email': uname, 'pwd': password })
.done(function() {
    var data = JSON.stringify(data); 
    //...  
});
.fail(function(){
  console.log('failure');
});

你也可以

result = $.get('url',{param1:'param'});
result.done(function(data){
   //handle success
});
result.done(function(){
   //handle failure
});