Javascript 为什么我会得到未捕获的SyntaxError:意外标记非法
我想使用AJAX和SoundCloudAPI来获取用户的轨迹Javascript 为什么我会得到未捕获的SyntaxError:意外标记非法,javascript,jquery,ajax,json,soundcloud,Javascript,Jquery,Ajax,Json,Soundcloud,我想使用AJAX和SoundCloudAPI来获取用户的轨迹 jQuery.ajax({ url: 'http://api.soundcloud.com/resolve?url=http://soundcloud.com/[SOME USER]/tracks/&format=json&consumer_key=[MY KEY]&callback=?' , dataType: 'jsonp' , s
jQuery.ajax({
url: 'http://api.soundcloud.com/resolve?url=http://soundcloud.com/[SOME USER]/tracks/&format=json&consumer_key=[MY KEY]&callback=?'
, dataType: 'jsonp'
, success: function( data ) {
console.log( data );
}
});
我可以看到chrome获得了json数据,但我得到了错误
Uncaught SyntaxError: Unexpected token ILLEGAL
在控制台中
问题可能是json文件是一个json数组。这可能是错误吗?
如果是,如何将数组转换为单个对象?问题是曲目id#159500192(
'Summer Chords Pt.2'(Electro House Mix)
)中的描述字段在JavaScript字符串中包含不合法的不可见字符,因此,当试图将JSONP响应作为脚本运行时,JavaScript解析器会阻塞。SoundCloud应该在通过JSONP提供内容时对这些值进行编码
因为SoundCloud支持CORS,所以根本不需要使用JSONP。您只需删除callback=?
参数并使用dataType:json
(而不是jsonp
)即可直接请求文件:
数据的内容是什么请发布JSON的内容!试试看;)问题在于曲目id#159500192(
'Summer Chords Pt.2'(Electro House Mix)
)中的description
字段具有JavaScript字符串中不合法的不可见字符,因此JavaScript解析器在尝试将JSONP响应作为脚本运行时会阻塞。当通过JSONP提供内容时,SoundCloud应该对这些值进行编码。是否有任何工具可以检查JS字符串中的非法不可见字符?
jQuery.ajax({ url: "https://api.soundcloud.com/resolve?url=http://soundcloud.com/[USER]/tracks/&format=json&consumer_key=[KEY]",
dataType: 'json',
success: function(d) { console.log(d); }
});