【发布时间】:2014-01-09 11:47:43
【问题描述】:
我根本无法在 Safari 中获得 json 响应,调用 SoundCloud 的 API。
var inputSet={url:setUrl},
clientId={client_id:client_id};
$.getJSON( "https://api.soundcloud.com/resolve.json", $.extend(inputSet, clientId), function( data ) {
console.log(data);
});
这会在 Safari 中返回 Origin Access-Control 错误,但在 Chrome 中不会。 CORS 根本不工作。
看到 CORS not working at all,实现了“工作”答案,完全相同的错误,只有 Safari。
添加回调参数不会返回该错误,但会返回 ajax 错误
"parsererror" SyntaxError {} 我认为是由于响应仍然是 json 而不是 jsonp。这在任一浏览器中都不起作用。
就目前而言,我无法让这个跨域请求在 chrome 中工作,即使文档
https://developers.soundcloud.com/docs#crossdomain
说我可以。
Safari 网络选项卡:
Safari 响应:
[Error] Failed to load resource: Origin https://seam.li is not allowed by Access-Control-Allow-Origin. (17235000.json, line 0)
[Error] XMLHttpRequest cannot load https://api.soundcloud.com/playlists/17235000.json?client_id=CLIENT_ID. Origin https://seam.li is not allowed by Access-Control-Allow-Origin. (seam.li, line 0)
链接页面在浏览器中加载正常。
【问题讨论】:
-
Chrome 中的“网络”标签显示什么?
-
不确定您是否指的是 Safari,因为 Chrome 是可行的,但 api 调用在 Chrome 上返回 200、302 或 304
-
更新了 Safari Network 的图片
-
你能显示详细信息(例如响应)吗?
-
响应更新
标签: javascript jquery ajax json soundcloud