jQuery ajax 调用没有响应

Posted

技术标签:

【中文标题】jQuery ajax 调用没有响应【英文标题】:No response from jQuery ajax call 【发布时间】:2011-03-11 17:31:51 【问题描述】:

今晚我已经为此苦苦挣扎了太久,在寻找答案时我没有发现任何有用的东西。这可能很简单。

我正在尝试通过使用 jQuery 进行 AJAX 调用来使用 Spotify 元数据 API 加载数据。 在浏览器中运行这个请求就可以了: 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,并将该文件作为 url 参数加载到 $.ajax-request 中,一切正常,所以我猜它与格式有关.

The documentation for the Spotify Metadata API 可能有用,但我不知道我做错了什么。

【问题讨论】:

【参考方案1】:

您不能进行跨域 ajax 调用(在大多数浏览器中)。由于 spotify api 端点尚不支持jsonp,因此您必须创建一个服务器端代理,它将 xml 反馈回您的页面。

【讨论】:

啊,不知道。谢谢!【参考方案2】:

我认为您在 XMLHTTPRequest 中遇到了阻止 XSS 请求的限制。此处提供更多文档:http://www.simple-talk.com/dotnet/asp.net/calling-cross-domain-web-services-in-ajax/。列出了许多解决方法。

【讨论】:

以上是关于jQuery ajax 调用没有响应的主要内容,如果未能解决你的问题,请参考以下文章

实现启用 AJAX 的 WCF 服务 - 来自 JQuery 的调用没有响应

如果没有得到响应,如何在 30 秒后停止 ajax 调用? [复制]

jquery ajax响应+不同AppDomain中的函数调用流程

AJAX 调用似乎从未发生过

CORS - jQuery 获取 ajax 响应状态失败

解决在IE11浏览器下,JQuery的AJAX方法不响应问题