json - 为什么我的 Spotify 应用程序中对外部 API 的 JSON 请求被取消?

标签 json api spotify

我正在构建一个 Spotify 应用程序,它使用像

这样的 URL 从 REST API 中提取 JSON 数据
http://www.mydomain.com/api/command?option=value

在我的 Spotify 应用 list 中,我已为 API 主机设置了所需的权限:

"RequiredPermissions": [ "http://*.mydomain.com" ]

我还在 API 的响应 header 中配置了跨源资源共享。这是一个真实的例子:

Server: nginx/0.7.65
Date: Thu, 08 Dec 2011 09:07:16 GMT
Content-Type: application/json
Connection: keep-alive
X-Powered-By: Mojolicious (Perl)
Set-Cookie: mojolicious=eyJwcmVmcyI6e30sImZpbHRlcnMiOnsicGllciI6eyJzb3VyY2VzIjpbMjBdfSwiZWxlYyI6eyJzb3VyY2VzIjpbMTMsMTddLCJ4dGFncyI6WyJzaG9lZ2F6ZSJdLCJ0YWdzIjpbImVsZWN0cm9uaWMiXX0sInB1bmtkdWIiOnsieHRhZ3MiOlsicmVnZ2FlIl0sInRhZ3MiOlsicHVuayIsImR1YiJdfX0sImV4cGlyZXMiOjEzMjMzMzg4MzZ9--c6d6214525b5d56785eebc99217394a1; Version=1; Path=/; expires=Thu, 08 Dec 2011 10:07:16 GMT
Content-Length: 23381
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET
Access-Control-Allow-Headers: *

200 OK

在 Spotify 中,在 chrome 检查器网络选项卡中,我看到请求正在被取消:

Name: command www.mydomain.net/api 
Method: GET 
Status Text: (canceled) 
Type: undefined 
Initiator: jquery-1.js:7180 (Script) 
Size Content: 13B (0B) 
Time Latency: 21ms (0.0 days)

Chrome inspector snapshot

如果我在桌面上的 Chrome 中运行我的应用程序(Spotify 之外),请求不会被取消,一切都很好。

我做错了什么?或者这可能是 Spotify 预览版中的一个错误(功能?)?

最佳答案

有几件事可能会导致这种情况,我会将它们按从最容易解决到最难解决的顺序排列。

  1. 检查您的manifest.json 中的RequiredPermissions 是否正确
  2. 检查您的manifest.json是否具有有效的json结构,您可以在 http://jsonlint.com/ 等网站上执行此操作
  3. 确保您存储的文件没有包含 BOM 字符(文件开头的不可见字节),这可能会导致 list 解析失败
  4. 确保您正在查询的服务器接受您的来源。 Spotify 中的所有应用程序都有一个像 sp://appname 这样的来源,大多数服务器默认只接受 http 和 https 协议(protocol),因此您可以设置 Acces-Control-Allow-Origin > 到 * 以确保请求不会被取消。

最后,我想指出,即使请求有时在检查器中显示为已取消,它仍然会有正确的响应,因此请务必仔细检查。

希望这有帮助!

编辑:有时,出于某种奇怪的原因,它也有助于在 RequiredPermissions 中设置您请求的网址,而无需 http://https :// 前缀。

关于json - 为什么我的 Spotify 应用程序中对外部 API 的 JSON 请求被取消?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8428864/

相关文章:

php - 将json编码的数据插入mysql

java - 如何使用 beans 将值插入到 sqlite 数据库中并将这些表值检索到 json 数组中

api - 使用 HTTPURLConnection 的 Docker 容器之间的 400 错误 HTTP GET 请求

iphone - 如何在印度创建 Spotify 开发者帐户

javascript - 阻止 showAuthenticationDialog 在 Spotify 应用程序中自动登录

c# - 获取json数据和图片

java - JAVA解析JSON无法获取值

php - ADP API 无法通过 SSL 错误

javascript - Angular中的http服务发送post数据作为请求正文的键,没有值

ios - 我需要知道如何获取有关哪个播放器当前正在播放的信息(播放器、spotify、napster ...)