nic*_*ick 5 api json spotify cors
我正在构建一个Spotify应用程序,它使用类似的URL从REST API中提取JSON数据
http://www.mydomain.com/api/command?option=value
Run Code Online (Sandbox Code Playgroud)
在我的Spotify应用清单中,我为API主机设置了所需的权限:
"RequiredPermissions": [ "http://*.mydomain.com" ]
Run Code Online (Sandbox Code Playgroud)
我还在我的API的响应头中配置了跨源资源共享.这是一个真实的例子:
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
Run Code Online (Sandbox Code Playgroud)
在Spotify中,在chrome inspector网络选项卡中,我看到请求被取消:
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)
Run Code Online (Sandbox Code Playgroud)

如果我在桌面上(在Spotify之外)在Chrome中运行我的应用,则请求不会被取消,一切都很好.
我究竟做错了什么?或者这可能是Spotify预览版中的一个错误(功能?)?
小智 9
有几件事可能导致这种情况,我会把它们从最简单的解决到最难的.
RequiredPermissionsmanifest.json中是否正确sp://appname,大多数服务器默认只接受http和https协议,因此您可以设置Acces-Control-Allow-Origin为*以确保请求不会被取消.最后,我想指出,即使请求有时会在检查员中显示为已取消,但它仍然会有正确的响应,因此请务必仔细检查.
希望这可以帮助!
编辑:有时,出于一些奇怪的原因,它也有助于设置你请求的网址RequiredPermissions没有http://或https://前置.
| 归档时间: |
|
| 查看次数: |
7509 次 |
| 最近记录: |