今晚我一直在努力解决这个问题,在搜索答案时我没有找到任何有用的东西。这可能很简单。
我正在尝试使用Spotify Metadata API通过使用jQuery进行AJAX调用来加载数据。 在浏览器中运行此请求可以正常工作: http://ws.spotify.com/search/1/track?q=foo 但是当我尝试使用jQuery加载相同的请求时,我得不到任何响应。我尝试了不同的contentTypes和dataTypes,但我无法弄清楚出了什么问题!
代码非常简单:
$.ajax({
url: "http://ws.spotify.com/search/1/track",
data: "q=foo",
success: function(xml){
// do stuff...
},
contentType: "application/xml",
dataType: "xml"
});
如果我保存在浏览器中运行查询时返回的XML,并将该文件作为$ .ajax-request中的url-parameter加载,一切正常,所以我猜它与格式有关。
The documentation for the Spotify Metadata API可能有用,但我无法弄清楚我可能做错了什么。
答案 0 :(得分:4)
您无法进行跨域ajax调用(在大多数浏览器中)。由于spotify api端点尚不支持jsonp,因此您必须创建一个服务器端代理,将xml反馈给您的页面。
答案 1 :(得分:0)
我认为你在XMLHTTPRequest中遇到了阻止XSS请求的限制。此处提供了更多文档:http://www.simple-talk.com/dotnet/asp.net/calling-cross-domain-web-services-in-ajax/。列出了许多工作方法。