首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >出错,SoundCloud接口自定义播放器

出错,SoundCloud接口自定义播放器
EN

Stack Overflow用户
提问于 2013-06-24 18:10:53
回答 1查看 156关注 0票数 0

嗨,我正在尝试在发生错误时捕获错误,但我的Json遇到了问题,当音轨加载完美时,我收到了一个成功的答案,但在崩溃中我什么也没有

代码语言:javascript
复制
$.getJSON(apiUrl, function(data, error) {
                index += 1;
                if(data.tracks){
                  playerObj.tracks = playerObj.tracks.concat(data.tracks);
                }else if(data.duration){
                  data.permalink_url = link.url;
                  playerObj.tracks.push(data);
                }else if(data.creator){
                  links.push({url:data.uri + '/tracks'});
                }else if(data.username){
                  if(/favorites/.test(link.url)){
                    links.push({url:data.uri + '/favorites'});
                  }else{
                    links.push({url:data.uri + '/tracks'});
                  }
                }else if($.isArray(data)){
                  playerObj.tracks = playerObj.tracks.concat(data);
                }
                if(links[index] && (index % 18) != 0){
                  var mod = index % 18;
                  loadUrl(links[index]);
                }else{
                  playerObj.node.trigger({type:'onTrackDataLoaded', playerObj: playerObj, url: apiUrl});
                  if (links[index]) {
                     loadMoreTracksData($player, links, key, index);
                  }
                }
              }).success(function() { console.log("second success"); }).error(function() { console.log("error"); });

有谁知道如何正确地监听这个Api中的错误。

EN

回答 1

Stack Overflow用户

发布于 2013-06-24 18:39:23

假设你使用的是jQuery 1.5以上的版本,下面的结构更适合你。

仅当从服务器返回适用的HTTP代码(例如,500 / 404 / 400)时才调用失败方法,而不是简单地返回空的数据集,而是使用成功的HTTP 200响应。

代码语言:javascript
复制
var index = 0;

var processResponse = function(data) {
                index += 1;
                if(data.tracks){
                  playerObj.tracks = playerObj.tracks.concat(data.tracks);
                }else if(data.duration){
                  data.permalink_url = link.url;
                  playerObj.tracks.push(data);
                }else if(data.creator){
                  links.push({url:data.uri + '/tracks'});
                }else if(data.username){
                  if(/favorites/.test(link.url)){
                    links.push({url:data.uri + '/favorites'});
                  }else{
                    links.push({url:data.uri + '/tracks'});
                  }
                }else if($.isArray(data)){
                  playerObj.tracks = playerObj.tracks.concat(data);
                }
                if(links[index] && (index % 18) != 0){
                  var mod = index % 18;
                  loadUrl(links[index]);
                }else{
                  playerObj.node.trigger({type:'onTrackDataLoaded', playerObj: playerObj, url: apiUrl});
                  if (links[index]) {
                     loadMoreTracksData($player, links, key, index);
                  }
              }

var processError = function(error){
   console.log("Error:" + error); 
}

$.getJSON(apiUrl)
.done(function(data){ processResponse(data); })
.fail(function(error){ processError(error); })
.complete(function(xhr, status) {console.log(status);};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17272941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档