在使用兩個框架做api的串接時碰到的問題,特此註記,以下是環境的介紹
- 前端: Vue-Admin-Template
- 後端: python falcon
接著,就是描述當下遇到的情況:
剛開始建立專案,想先不動任何設定,去嘗試 api 打不打得通,直接用預設 Vue-Admin-Template 提供的預設 api 方式去測試,但結果不如預期,馬上就噴了個錯誤。
點進去看一下發生錯誤的地方,也就是request.js
的 source code,發現了有趣的一個部分。
if (res.code !== 20000) {
Message({
message: res.message || 'Error',
type: 'error',
duration: 5 * 1000
})
// ...
} else {
return res
}
這也就代表 request.js
會在後端傳回的資料中,確認是否有包含 code === 20000
的情況,於是我就對後端傳送的資料加上了 data_res = '{"code": 20000, "data": "wsrsw@example.com"}'
。
於是,前端就能夠成功接到資料了。
不過很好奇 request.js
這樣設計不會讓每個使用者容易吃到這個錯誤嗎,於是就查了一下資料,根據 vue-admin-template 上 issue 的回答貌似是框架封裝的問題,正常來說框架應該會把這段解決掉,但 vue-admin-template 這個沒幫忙,所以只好由自己撰寫後端的 function 來為每個成功的 api response 套上成功值。