[GH-ISSUE #404] 网络错误,跨域 #215

Closed
opened 2026-02-27 07:10:44 +03:00 by kerem · 7 comments
Owner

Originally created by @happy-ling on GitHub (Apr 21, 2025).
Original GitHub issue: https://github.com/imsyy/SPlayer/issues/404

是网页端还是客户端

网页

当前系统环境

win10

当前 Node.js 及 npm 版本

v14

当前版本

1.0

具体信息

Image
跨域错误

Originally created by @happy-ling on GitHub (Apr 21, 2025). Original GitHub issue: https://github.com/imsyy/SPlayer/issues/404 ### 是网页端还是客户端 网页 ### 当前系统环境 win10 ### 当前 Node.js 及 npm 版本 v14 ### 当前版本 1.0 ### 具体信息 ![Image](https://github.com/user-attachments/assets/73273d96-f7b3-489b-873e-8a8a513c453c) 跨域错误
kerem 2026-02-27 07:10:44 +03:00
  • closed this issue
  • added the
    过期
    label
Author
Owner

@s1eke commented on GitHub (Apr 21, 2025):

相同问题,关掉音乐频谱之后刷新页面可以听一首歌,听完又会跨域,再次刷新又可以听……

很奇怪的是不登陆好像就没有问题。

<!-- gh-comment-id:2817711327 --> @s1eke commented on GitHub (Apr 21, 2025): 相同问题,关掉音乐频谱之后刷新页面可以听一首歌,听完又会跨域,再次刷新又可以听…… 很奇怪的是不登陆好像就没有问题。
Author
Owner

@tym2008 commented on GitHub (Apr 21, 2025):

如果用网页端的话你确定NeteaseCloudMusicApi部署成功了吗? NCM-Api返回头会包含CORS的返回头的
然后你这个地址(music-api.ydev,tech)貌似并不是正常部署成功的NCM-Api,正常部署完应该有个这样的界面(下图)

Image
而且顺手测了下,并没有响应search的API,不知道是不是因为你限制了公网调用你的API。
如果想要确认的话,可以到网络选项卡里面找到被CORS拦截的请求(会标红),看看里面的返回头是否包含Access-Allow-Control-Origin,默认的值好像是*
正常来说如果去打开这个链接应该是会返回一大串json的,没有的话就是API部署不成功
如果打开了发现是有返回json文件的,可以试试nginx代理下,加返回头(Cloudflare Worker也可以)

<!-- gh-comment-id:2818104660 --> @tym2008 commented on GitHub (Apr 21, 2025): 如果用网页端的话你确定NeteaseCloudMusicApi部署成功了吗? NCM-Api返回头会包含CORS的返回头的 然后你这个地址(music-api.ydev,tech)貌似并不是正常部署成功的NCM-Api,正常部署完应该有个这样的界面(下图) ![Image](https://github.com/user-attachments/assets/4453bb5b-36ec-4b88-aa01-f732faafc99f) 而且顺手测了下,并没有响应search的API,不知道是不是因为你限制了公网调用你的API。 如果想要确认的话,可以到网络选项卡里面找到被CORS拦截的请求(会标红),看看里面的返回头是否包含Access-Allow-Control-Origin,默认的值好像是* 正常来说如果去打开这个链接应该是会返回一大串json的,没有的话就是API部署不成功 如果打开了发现是有返回json文件的,可以试试nginx代理下,加返回头(Cloudflare Worker也可以)
Author
Owner

@tym2008 commented on GitHub (Apr 21, 2025):

相同问题,关掉音乐频谱之后刷新页面可以听一首歌,听完又会跨域,再次刷新又可以听……

很奇怪的是不登陆好像就没有问题。

你那个不是一样的问题。你是音乐文件CORS问题,这个是NCM-Api的CORS问题
在其它issue看你截图你是本地docker部署的,网易的文件本来就没有CORS的返回头,要关音乐频谱。
我Vercel+cloudflare pages部署的在公网也会这样,关了音乐频谱之后就一切正常了

<!-- gh-comment-id:2818107481 --> @tym2008 commented on GitHub (Apr 21, 2025): > 相同问题,关掉音乐频谱之后刷新页面可以听一首歌,听完又会跨域,再次刷新又可以听…… > > 很奇怪的是不登陆好像就没有问题。 你那个不是一样的问题。你是音乐文件CORS问题,这个是NCM-Api的CORS问题 在其它issue看你截图你是本地docker部署的,网易的文件本来就没有CORS的返回头,要关音乐频谱。 我Vercel+cloudflare pages部署的在公网也会这样,关了音乐频谱之后就一切正常了
Author
Owner

@s1eke commented on GitHub (Apr 22, 2025):

相同问题,关掉音乐频谱之后刷新页面可以听一首歌,听完又会跨域,再次刷新又可以听……
很奇怪的是不登陆好像就没有问题。

你那个不是一样的问题。你是音乐文件CORS问题,这个是NCM-Api的CORS问题 在其它issue看你截图你是本地docker部署的,网易的文件本来就没有CORS的返回头,要关音乐频谱。 我Vercel+cloudflare pages部署的在公网也会这样,关了音乐频谱之后就一切正常了

很奇怪,我关掉音乐频谱之后还是会有问题,每次刷新页面可以可以正常听一首歌,不知道为什么

Image
<!-- gh-comment-id:2821161278 --> @s1eke commented on GitHub (Apr 22, 2025): > > 相同问题,关掉音乐频谱之后刷新页面可以听一首歌,听完又会跨域,再次刷新又可以听…… > > 很奇怪的是不登陆好像就没有问题。 > > 你那个不是一样的问题。你是音乐文件CORS问题,这个是NCM-Api的CORS问题 在其它issue看你截图你是本地docker部署的,网易的文件本来就没有CORS的返回头,要关音乐频谱。 我Vercel+cloudflare pages部署的在公网也会这样,关了音乐频谱之后就一切正常了 很奇怪,我关掉音乐频谱之后还是会有问题,每次刷新页面可以可以正常听一首歌,不知道为什么 <img width="1554" alt="Image" src="https://github.com/user-attachments/assets/e5c47cda-d706-4a40-a376-0914d2b4dd3b" />
Author
Owner

@tym2008 commented on GitHub (Apr 23, 2025):

相同问题,关掉音乐频谱之后刷新页面可以听一首歌,听完又会跨域,再次刷新又可以听……
很奇怪的是不登陆好像就没有问题。

你那个不是一样的问题。你是音乐文件CORS问题,这个是NCM-Api的CORS问题 在其它issue看你截图你是本地docker部署的,网易的文件本来就没有CORS的返回头,要关音乐频谱。 我Vercel+cloudflare pages部署的在公网也会这样,关了音乐频谱之后就一切正常了

很奇怪,我关掉音乐频谱之后还是会有问题,每次刷新页面可以可以正常听一首歌,不知道为什么

Image

你需要对比两次的文件的返回头中的Access-Allow-Control-Origin字样,看看两个请求的返回头是不是不一样。示例:

Image

只看控制台是没法解释为什么你打开之后播放的第一首歌是能正常播放的。
可以看下https://github.com/imsyy/SPlayer/issues/381 这个也是docker的问题,但看不出来是API问题还是音频文件问题。
https://github.com/imsyy/SPlayer/issues/359 从这个来看,可能是docker镜像不是最新的?试试自己拉取最新的构建看看

<!-- gh-comment-id:2823037787 --> @tym2008 commented on GitHub (Apr 23, 2025): > > > 相同问题,关掉音乐频谱之后刷新页面可以听一首歌,听完又会跨域,再次刷新又可以听…… > > > 很奇怪的是不登陆好像就没有问题。 > > > > > > 你那个不是一样的问题。你是音乐文件CORS问题,这个是NCM-Api的CORS问题 在其它issue看你截图你是本地docker部署的,网易的文件本来就没有CORS的返回头,要关音乐频谱。 我Vercel+cloudflare pages部署的在公网也会这样,关了音乐频谱之后就一切正常了 > > 很奇怪,我关掉音乐频谱之后还是会有问题,每次刷新页面可以可以正常听一首歌,不知道为什么 > > <img alt="Image" width="1554" src="https://private-user-images.githubusercontent.com/10690839/436069649-e5c47cda-d706-4a40-a376-0914d2b4dd3b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDUzODI1ODQsIm5iZiI6MTc0NTM4MjI4NCwicGF0aCI6Ii8xMDY5MDgzOS80MzYwNjk2NDktZTVjNDdjZGEtZDcwNi00YTQwLWEzNzYtMDkxNGQyYjRkZDNiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA0MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwNDIzVDA0MjQ0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWVhZDUxYzg0MDNhN2ZhMDk5MmFmZTQ1ZTdiM2UwN2JjYTQzYTc1ODAzMzg2NTM0ZmZhMDZiN2Q5YjU1MWY5M2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.3_rGhPP90cyprEmRM6mJwbYli_CW12FbCU2D2K2nO5E"> 你需要对比两次的文件的返回头中的Access-Allow-Control-Origin字样,看看两个请求的返回头是不是不一样。示例: ![Image](https://github.com/user-attachments/assets/85ee0b5a-2149-4fc5-af40-7ee94973201d) 只看控制台是没法解释为什么你打开之后播放的第一首歌是能正常播放的。 可以看下[https://github.com/imsyy/SPlayer/issues/381](https://github.com/imsyy/SPlayer/issues/381) 这个也是docker的问题,但看不出来是API问题还是音频文件问题。 [https://github.com/imsyy/SPlayer/issues/359](https://github.com/imsyy/SPlayer/issues/359) 从这个来看,可能是docker镜像不是最新的?试试自己拉取最新的构建看看
Author
Owner

@s1eke commented on GitHub (Apr 23, 2025):

相同问题,关掉音乐频谱之后刷新页面可以听一首歌,听完又会跨域,再次刷新又可以听……
很奇怪的是不登陆好像就没有问题。

你那个不是一样的问题。你是音乐文件CORS问题,这个是NCM-Api的CORS问题 在其它issue看你截图你是本地docker部署的,网易的文件本来就没有CORS的返回头,要关音乐频谱。 我Vercel+cloudflare pages部署的在公网也会这样,关了音乐频谱之后就一切正常了

很奇怪,我关掉音乐频谱之后还是会有问题,每次刷新页面可以可以正常听一首歌,不知道为什么
Image

你需要对比两次的文件的返回头中的Access-Allow-Control-Origin字样,看看两个请求的返回头是不是不一样。示例:

Image

只看控制台是没法解释为什么你打开之后播放的第一首歌是能正常播放的。 可以看下#381 这个也是docker的问题,但看不出来是API问题还是音频文件问题。 #359 从这个来看,可能是docker镜像不是最新的?试试自己拉取最新的构建看看

解决了,确实是docker镜像的问题,官方的imsyy/splayer:v3.0.0-beta.1是12月12号打包的,然后修复跨域问题的commit是12月27号的,没有包括在内,我重新打了个镜像就ok了

<!-- gh-comment-id:2823295408 --> @s1eke commented on GitHub (Apr 23, 2025): > > > > 相同问题,关掉音乐频谱之后刷新页面可以听一首歌,听完又会跨域,再次刷新又可以听…… > > > > 很奇怪的是不登陆好像就没有问题。 > > > > > > > > > 你那个不是一样的问题。你是音乐文件CORS问题,这个是NCM-Api的CORS问题 在其它issue看你截图你是本地docker部署的,网易的文件本来就没有CORS的返回头,要关音乐频谱。 我Vercel+cloudflare pages部署的在公网也会这样,关了音乐频谱之后就一切正常了 > > > > > > 很奇怪,我关掉音乐频谱之后还是会有问题,每次刷新页面可以可以正常听一首歌,不知道为什么 > > <img alt="Image" width="1554" src="https://private-user-images.githubusercontent.com/10690839/436069649-e5c47cda-d706-4a40-a376-0914d2b4dd3b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDUzODI1ODQsIm5iZiI6MTc0NTM4MjI4NCwicGF0aCI6Ii8xMDY5MDgzOS80MzYwNjk2NDktZTVjNDdjZGEtZDcwNi00YTQwLWEzNzYtMDkxNGQyYjRkZDNiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTA0MjMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwNDIzVDA0MjQ0NFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWVhZDUxYzg0MDNhN2ZhMDk5MmFmZTQ1ZTdiM2UwN2JjYTQzYTc1ODAzMzg2NTM0ZmZhMDZiN2Q5YjU1MWY5M2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.3_rGhPP90cyprEmRM6mJwbYli_CW12FbCU2D2K2nO5E"> > > 你需要对比两次的文件的返回头中的Access-Allow-Control-Origin字样,看看两个请求的返回头是不是不一样。示例: > > ![Image](https://github.com/user-attachments/assets/85ee0b5a-2149-4fc5-af40-7ee94973201d) > > 只看控制台是没法解释为什么你打开之后播放的第一首歌是能正常播放的。 可以看下[#381](https://github.com/imsyy/SPlayer/issues/381) 这个也是docker的问题,但看不出来是API问题还是音频文件问题。 [#359](https://github.com/imsyy/SPlayer/issues/359) 从这个来看,可能是docker镜像不是最新的?试试自己拉取最新的构建看看 解决了,确实是docker镜像的问题,官方的imsyy/splayer:v3.0.0-beta.1是12月12号打包的,然后修复跨域问题的[commit](https://github.com/imsyy/SPlayer/commit/1a61aa24580785afe382d179c9f133a5b5861937)是12月27号的,没有包括在内,我重新打了个镜像就ok了
Author
Owner

@github-actions[bot] commented on GitHub (Nov 27, 2025):

👀 该 Issue 已经 30 天没有任何更新啦
如果问题仍然存在,请回复此评论,否则将在 7 天后自动关闭

<!-- gh-comment-id:3584432628 --> @github-actions[bot] commented on GitHub (Nov 27, 2025): 👀 该 Issue 已经 30 天没有任何更新啦 如果问题仍然存在,请回复此评论,否则将在 7 天后自动关闭
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/SPlayer#215
No description provided.