2016-12-16 5 views
3

В консоли это дает мне ошибку «Неиспользуемый SyntaxError: Неожиданный токен:», но если я получаю прямой URL SoundCloud в своем браузере, то он дает действительный JSON. Раньше этот код работал нормально, и сегодня эта проблема началась.SoundCloud API дает сообщение «Uncaught SyntaxError: Неожиданный токен:»

<html> 
    <head> 
    <script src="https://api.soundcloud.com/resolve.json?url=https://api.soundcloud.com/tracks/251912676/?secret_token=s-EkyTy&amp;client_id=08f79801a998c381762ec5b15e4914d5"></script> 
    </head> 
    <body> 
    <h2>hellooo</h2> 
    </body> 
</html> 

Update:

Ниже фактический код, который я задаю вопрос, над HTML я только что создал, например.

SoundCloud.prototype._jsonp = function (url, callback) { 
     var target = document.getElementsByTagName('script')[0] || document.head; 
     var script = document.createElement('script'); 

     var id = 'jsonp_callback_' + Math.round(100000 * Math.random()); 
     window[id] = function (data) { 
      if (script.parentNode) { 
       script.parentNode.removeChild(script); 
      } 
      window[id] = function() {}; 
      callback(data); 
     }; 

     script.src = url + (url.indexOf('?') >= 0 ? '&' : '?') + 'callback=' + id; 
     target.parentNode.insertBefore(script, target); 
}; 
+2

Почему вы импортируете файл JSON в качестве скрипта? JSON - это не JavaScript. Вы имели в виду использовать JSONP (который есть)? – 4castle

+0

На самом деле это часть кода, у нас есть пользовательский аудиоплеер, использующий реакцию на soundcloud, где мы получаем ответ JSONP, и все работает нормально, но с сегодняшнего дня началась ошибка. – Saurabh

+0

Почему кто-то дает минус здесь, я, возможно, не очень хорошо описал, но в чем проблема с вопросом, у меня есть функция обратного вызова в моем коде. – Saurabh

ответ

0

Следующий тег сценария ожидает код JavaScript в источнике, а не JSON.

<script src="file.js"></script> 
0

Я предполагаю, что вы хотите использовать этот внешне произведенный ... JSON

Путь «получить» он использует асинхронный запрос Ajax, как $.get(url,callback);

Calling его как сценарий будет sure fail ...
Потому что это не сценарий.

Попробуйте запустить фрагмент!

var url = "https://api.soundcloud.com/resolve.json?url=https://api.soundcloud.com/tracks/251912676/?secret_token=s-EkyTy&amp;client_id=08f79801a998c381762ec5b15e4914d5" 
 

 
var json; 
 

 
$.get(url,function(result){ 
 
    json = result; 
 

 
    // show in console 
 
    console.log(JSON.stringify(json)); 
 
    
 
    // Now using it... 
 
    $("#json_usage").html(json.tag_list+" and all the "+json.permalink); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<html> 
 
\t <head> 
 
\t <!--script src="https://api.soundcloud.com/resolve.json?url=https://api.soundcloud.com/tracks/251912676/?secret_token=s-EkyTy&amp;client_id=08f79801a998c381762ec5b15e4914d5"></script--> 
 
\t </head> 
 
\t <body> 
 
     <h2>hellooo <span id="json_usage"></span> !</h2> 
 
    </body> 
 
</html>

В приведенном выше описании, в результате JSON помещается в json переменной, а затем консоли вошли.

1

У меня возникла причина проблемы, ранее звуковой звук отвечал на ответ в jsonp, но теперь они предоставляют JSON, даже я передал функцию обратного вызова JsonP. Я должен был сделать запрос ajax, чтобы исправить это.

Я использовал следующий код, чтобы исправить его.

var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
     if (this.readyState == 4 && this.status == 200) { 
      callback(JSON.parse(this.responseText)); 
     } 
    }; 
    xhttp.open("GET", url, true); 
    xhttp.send(); 
+0

Как вы это исправили? У меня такая же проблема со вчерашнего дня. – frankie

+0

У меня такая же проблема, пожалуйста, предоставьте свое решение. Благодаря! – abla

+0

см. Обновление ответ @abla – Saurabh

0

Извините, у вас возникли проблемы с ответами JSONP от API SoundCloud. Это было связано с ошибкой, которая в последние несколько дней превратилась в производство. Мы только что развернули исправление, и поэтому эта конечная точка теперь будет возвращать действительные ответы JSONP, а не только JSON, если вы укажете параметр callback. Извините за беспорядок!

 Смежные вопросы

  • Нет связанных вопросов^_^