mirror of
https://github.com/imsyy/SPlayer.git
synced 2026-04-25 06:55:57 +03:00
[PR #472] [MERGED] fix(getOnlineUrl): 修复网页端登录后获取url的CORS问题 #474
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/imsyy/SPlayer/pull/472
Author: @MoeFurina
Created: 9/24/2025
Status: ✅ Merged
Merged: 9/25/2025
Merged by: @imsyy
Base:
dev← Head:dev📝 Commits (1)
883ef05fix(getOnlineUrl): 修复网页端登录后获取url的CORS问题📊 Changes
1 file changed (+3 additions, -2 deletions)
View changed files
📝
src/utils/player.ts(+3 -2)📄 Description
为什么要修改这里?
简单来说,CORS(跨域资源共享)是浏览器的一种安全机制。它要求网站A想从网站B加载资源时,网站B的服务器必须明确表示“我允许网站A来拿我的资源”。如果服务器没有给出这个“许可”,浏览器就会拦截这个请求。
网易云音乐的音乐链接有个特点:
未登录时获取的链接(通常是 m801 或 m701 开头的域名)是配置好了这个“许可”的。
登录后获取的链接(通常是 m804 或 m704 开头的域名)反而没有配置这个“许可”。
这就导致了一个问题:当我们直接使用登录后的链接去请求音乐时,浏览器会因为安全规则(CORS)而阻止。
解决方案很简单:
既然未登录的链接有“许可”,而登录前后的链接只有域名不同,那我们只需要把登录后链接里的域名(m804/m704)替换成未登录的域名(m801/m701)就可以了。这样,我们就能绕过浏览器的CORS限制,正常播放音乐。
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.