我正在嘗試將一段作業代碼從 Axios 0.27.2 升級到 1.0.0,處理帶有查詢字串的 URL 的方式似乎中斷了。也就是說,我得到一個 404 回應,并且使用的實際 URL 看起來與以前不同,因為缺少問號。
URL 如下所示:https://my.server.com/some/path?foo=bar&baz=abc 以前的 axios 使用它。在 1.0.0 版本中,發送的實際 URL(如錯誤中所報告)是:https ://my.server.com/some/pathfoo=bar&baz=abc
類似的問題都圍繞著如何構建查詢字串以及 axios 接受 params 物件這一事實。就我而言,我從其他地方獲取了一個包含 / 可能已經包含查詢字串的 URL。如何說服 Axios 使用此 URL 而無需以某種方式更改它?
uj5u.com熱心網友回復:
axios.get('my-url', {
params: {
foo: "baz",
baz: "abc",
}
}).then(...)
是否需要指定是否是 CORS REQUEST(設定 axios 選項,在請求之前)
uj5u.com熱心網友回復:
見https://github.com/axios/axios/issues/4999
這是 Axios 1.0.0 中的錯誤,在 1.1.0 中修復
uj5u.com熱心網友回復:
您可以通過構建一個函式來解決此問題,將接收到的 url 拆分為包含基本 url 和引數的物件,然后再傳遞給 axios。
function getUrlParams (url) {
const fullUrl = url;
const splitUrl = fullUrl.split("?");
const newUrl = splitUrl[0];
const paramsArray = splitUrl[1].split("&");
let paramsObj = {};
for(let i = 0; i < paramsArray.length; i )
{
const arr = paramsArray[i].split("=");
const keyName = arr[0];
const value = arr[1];
paramsObj = {...paramsObj, [keyName]: value};
}
const data = {
base: newUrl,
params: paramsObj
}
return data;
}
const url = getUrlParams("https://my.server.com/some/path?foo=bar&baz=abc");
console.log(url)
然后對于 axios 呼叫你可以做
axios.post(url.base, null, { params: url.params})
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/517819.html
