为什么我会得到Uncaught SyntaxError:意外的令牌非法
Why do I get Uncaught SyntaxError: Unexpected token ILLEGAL
我想使用AJAX和SoundCloud API来获取用户的轨迹。
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数组。这可能是错误吗?如果是,如何将数组转换为单个对象?
问题是,track id#159500192('Summer Chords Pt. 2' (Electro House Mix)
)中的描述字段在JavaScript字符串中有不可见的不合法字符,因此JavaScript解析器在尝试将JSONP响应作为脚本运行时会阻塞。SoundCloud在通过JSONP提供内容时应对这些值进行编码。
因为SoundCloud支持CORS,所以您根本不需要使用JSONP。您可以通过删除callback=?
参数并使用dataType: json
(而不是jsonp
)来直接请求文件:
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); }
});
相关文章:
- React JS:未捕获(在承诺中)语法错误:在位置 0 的 JSON 中意外<令牌
- jQuery$.getJSON抛出意外令牌
- 为什么我在下面的..of循环中得到意外令牌
- 组件中的ReactJS意外令牌
- AngularJS $http GET 请求到本地 JSON 文件返回语法错误:意外令牌]
- 巴别塔,意外令牌 (15:33) ::.
- Sencha 2.0 和 Codeigniter RESTful API 生成未捕获的语法错误:意外令牌:
- 在事件上使用 jquery 时出现意外令牌
- JSON 中位置 4 处的意外令牌<
- 意外令牌 ) 在我的代码中
- Electron 和 Babel 6 异步/等待抛出意外令牌
- “JSON.parse(str)”返回“意外令牌c”,但str是一个字符串
- jQuery after() uncatch SyntaxError: 意外令牌 ILLEGAL
- 使用节点javascript的意外令牌ILLEGAL
- Javascript/JQuery-Chrome意外令牌
- Ajax 帖子未捕获语法错误:意外令牌非法
- angularjs-SyntaxError:请求从服务器返回时出现意外令牌
- jquery:使用ember的意外令牌C
- React本机项目中的意外令牌
- 解析有效的 JSON 得到“语法错误:意外令牌非法”