【问题标题】:jquery ajax ParseError with Musixmatch API带有 Musixmatch API 的 jquery ajax ParseError
【发布时间】:2015-11-18 13:17:51
【问题描述】:

我正在使用带有以下代码的 jQuery 1.11.3:

$.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... [] 未被调用

我做错了什么?

【问题讨论】:

  • 为什么你的dataType设置为jsonp?
  • jsonp 因为它是一个外部调用,我得到请求的资源上没有“Access-Control-Allow-Origin”标头。因此,Origin 'localhost' 不允许访问。如果我不使用 jsonp
  • 您是否在某处发送 jsonp 回调?

标签: javascript jquery musixmatch


【解决方案1】:

看起来您在 ajax 上遗漏了一些东西。您需要指定回调函数的名称来处理 jsonp。此外,还有一个格式参数需要与 musixmatch api 一起使用。签出这个 plunker: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);
    }    
  });
 });

【讨论】:

  • 难以置信...你是怎么做到的?有用!有用!它有效!它有效!有用!它有效!它有效!有用!它有效!它有效!有用!它有效!它有效!有用!它有效!它有效!有用!它有效!
猜你喜欢
  • 2012-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-14
  • 2013-05-10
  • 2018-11-20
  • 2017-10-15
相关资源
最近更新 更多