【发布时间】:2012-08-02 01:41:48
【问题描述】:
所以我正在开发一个 spotify 应用程序,试图让它与我的本地 Rails 应用程序 API 对话。当我尝试时,除了 req.status 0 之外,我什么也得不到。
我认为这可能是 spotify manifest.json 文件的问题,不允许 port:3000 继续您在所需权限中设置的 url,但它还在他们的文档中说明了以下内容。
https://developer.spotify.com/technologies/apps/tutorial/
如果您需要与外部 Web API 对话,我们欢迎您,只要您遵守集成指南中设置的规则。请注意,当与 Web API 通信时,请求将来自源 sp://$APPNAME(我们的示例中是 sp://tutorial) - 确保您正在与之通信的服务接受来自此类源的请求。
所以,我不确定 rails 是否设置为不允许这种事情,或者是否将端口设置为所需权限存在问题,但我的请求
var req = new XMLHttpRequest();
req.open("GET", "http://127.0.0.1:3000/api/spotify/track/1.json", true);
console.log(req);
req.onreadystatechange = function() {
console.log(req.status);
console.log(req.readyState);
if (req.readyState == 4) {
if (req.status == 200) {
console.log("Search complete!");
console.log(req.responseText);
}
}
};
req.send();
总是返回状态 0,例如:
var req = new XMLHttpRequest();
req.open("GET", "http://ws.audioscrobbler.com/2.0/?method=geo.getevents&location=" + city + "&api_key=YOUR_KEY_HERE", true);
req.onreadystatechange = function() {
console.log(req.status);
if (req.readyState == 4) {
console.log(req);
if (req.status == 200) {
console.log("Search complete!");
console.log(req.responseText);
}
}
};
req.send();
至少会返回 403 响应。好像没有提出请求或其他什么?
有人知道会发生什么吗?
非常感谢!
【问题讨论】:
-
检查您的 Rails 应用程序是否在您的日志中被命中
-
只是说清楚,请求来自哪里?
127.0.0.1:3000只能在您的本地机器上接受! -
是的,它来自 spotify 应用程序本身,我有自己的来自 spotify 应用程序的小控制台,据我所知,它是在我的本地机器的上下文中运行的。 - 我也只是尝试点击我的一个实时网站的主页,看看我是否能得到除了空白响应之外的任何东西,但我不能,得到同样的东西。所以我认为它可能是服务器设置或其他什么?嗯嗯。
-
尝试使用诸如 firebug 或 chrome dev 工具之类的网络检查器,以确保请求是从您的浏览器发送的(查找网络选项卡)
标签: ruby-on-rails ruby api cross-domain spotify