2015-08-25 58 views
3

我使用jQuery 1.11.3用下面的代碼:jQuery的AJAX ParseError與Musixmatch API

$.ajax({ 
    type: "GET", 
    data: { 
     apikey: apiMusixkey, 
     q_track: q, 
     page_size: 10 
    }, 
    url: "http://api.musixmatch.com/ws/1.1/track.search", 
    dataType: "jsonp", 
    contentType: 'application/json', 
    success: function(data) { 
     //console.log(json); 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     console.log(jqXHR); 
     console.log(textStatus); 
     console.log(errorThrown); 
    } 
}); 

我收到錯誤:

parseError... [] was not called

我在做什麼錯?

+0

爲什麼你的dataType設置爲jsonp? – jarz

+0

jsonp因爲它是一個外部調用,我得到沒有'訪問控制允許來源'標題出現在請求的資源。因此不允許Origin'http:// localhost'訪問。如果我不使用jsonp – Francesco

+0

你是否在某處發送了jsonp回調? – jarz

回答

3

看起來你錯過了你的ajax上的一些東西。您需要指定回調函數的名稱來處理jsonp。另外,你需要使用musixmatch API的格式參數。結帳這個運動員:http://plnkr.co/edit/XW6TFUJquW8o8EVpEEgU?p=preview

$(function(){ 

    $.ajax({ 
    type: "GET", 
    data: { 
     apikey:"309788821d050a0623303261b9ddedc4", 
     q_track:"back to december", 
     q_artist:"taylor%20swift", 
     f_has_lyrics: 1, 
     format:"jsonp", 
     callback:"jsonp_callback" 
    }, 
    url: "http://api.musixmatch.com/ws/1.1/track.search", 
    dataType: "jsonp", 
    jsonpCallback: 'jsonp_callback', 
    contentType: 'application/json', 
    success: function(data) { 
     console.log(data); 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     console.log(jqXHR); 
     console.log(textStatus); 
     console.log(errorThrown); 
    }  
    }); 
}); 
+0

令人難以置信......你是怎麼做到的?有用!有用!它的工作原理!有用!它的工作原理!有用!它的工作原理!有用!它的工作原理!有用!它的工作原理!有用!有用! – Francesco