diff --git a/src/components/TrackListItem.vue b/src/components/TrackListItem.vue
index d8dc8eb..bb574ae 100644
--- a/src/components/TrackListItem.vue
+++ b/src/components/TrackListItem.vue
@@ -15,7 +15,10 @@
/>
{{
track.no
diff --git a/src/store/actions.js b/src/store/actions.js
index 4cea2e1..1cc751c 100644
--- a/src/store/actions.js
+++ b/src/store/actions.js
@@ -1,6 +1,7 @@
import { updateMediaSessionMetaData } from "@/utils/mediaSession";
import { getTrackDetail, scrobble, getMP3 } from "@/api/track";
import { isLoggedIn } from "@/utils/auth";
+import { updateHttps } from "@/utils/common"
export default {
switchTrack({ state, dispatch, commit }, basicTrack) {
@@ -43,7 +44,11 @@ export default {
if (isLoggedIn) {
getMP3(track.id).then((data) => {
- commitMP3(data.data[0].url.replace(/^http:/, "https:"));
+ // 未知情况下会没有返回数据导致报错,增加防范逻辑
+ if (data.data[0]) {
+ const url = updateHttps(data.data[0].url);
+ commitMP3(url);
+ }
});
} else {
commitMP3(`https://music.163.com/song/media/outer/url?id=${track.id}`);
diff --git a/src/utils/common.js b/src/utils/common.js
index d061bf9..6fcd59f 100644
--- a/src/utils/common.js
+++ b/src/utils/common.js
@@ -70,3 +70,8 @@ export function throttle(fn, time) {
}, time);
};
}
+
+export function updateHttps(url) {
+ if (!url) return ''
+ return url.replace(/^http:/, "https:");
+}
\ No newline at end of file
diff --git a/src/views/loginAccount.vue b/src/views/loginAccount.vue
index 36c8918..2958bc0 100644
--- a/src/views/loginAccount.vue
+++ b/src/views/loginAccount.vue
@@ -12,7 +12,7 @@