获取未捕获的语法错误:意外的令牌':'

时间:2017-06-28 19:57:59

标签: jquery json ajax get syntax-error

我正在提出API请求,但我无法弄清楚为什么会这样。

当我检查网络选项卡时,我请求的数据是正确的,但它不会在控制台中打印出来。

我正在使用Musixmatch API

有什么想法吗?

              $.ajax({
                type: "GET",
                data: {
                  "apikey": musixmatch,
                  "q_track": song,
                  "q_artist": artist,
                  "format":"json",
                },
                url: "https://api.musixmatch.com/ws/1.1/matcher.track.get",
                dataType: "jsonp",
                contentType: 'application/json',
                success: function(response)
                {
                  console.log(response);
                }
              });

2 个答案:

答案 0 :(得分:1)

你做错了!

documentation for the API明确指出格式有三种选择:JSON,JSONP和XML。

由于您正在使用客户端代码,您希望使用JSONP,但是您无法告诉jQuery期望JSONP然后要求API仅返回JSON,您还必须将format选项更改为JSONP,以便API返回

$.ajax({
  type: "GET",
  data: {
    "apikey": 'musixmatch',
    "q_track": 'song',
    "q_artist": 'artist',
    "format": "jsonp",
  },
  url: "https://api.musixmatch.com/ws/1.1/matcher.track.get",
  dataType: "jsonp",
  contentType: 'application/json',
  success: function(response) {
    console.log(response);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:0)

代码中的错误:

  1. "format":"json",此处不应有逗号。
  2. 其次,尝试删除以下两行,它应该正常工作:

    dataType: "jsonp",
    contentType: 'application/json',
    
  3. 最后,如果上述方法不起作用,请尝试:

    $.getJSON("https://api.musixmatch.com/ws/1.1/matcher.track.get", {
      "apikey": musixmatch,
      "q_track": song,
      "q_artist": artist,
      "format": "json"
    }, function(response) {
      console.log(response);
    });
    

    上述方法是最好的,因为它专门用于从API获取JSON输出。这应该是正确的方法。

    $.getJSON("https://api.musixmatch.com/ws/1.1/matcher.track.get", {
      "apikey": "",
      "q_track": "Hello",
      "q_artist": "Hi",
      "format": "json"
    }, function(response) {
      console.log(response);
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>