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

时间:2015-07-19 11:48:12

标签: javascript jquery json 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添加到此代码中?

2 个答案:

答案 0 :(得分:3)

  

我尝试了.done()和.fail()函数,但它抛出了一个未捕获的表达式错误。**

.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
    });

答案 1 :(得分:1)

尝试使用

$.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
});