4 回答

TA貢獻1829條經(jīng)驗 獲得超7個贊
可行的解決方案是使用qs包對數(shù)據(jù)進行字符串化。
import qs from 'qs';
const data = {
username: params.username,
password: params.password,
};
api.post('/authenticate', qs.stringify(data)
).then(response => {
console.log(response);
resolve({ ok: true, json: () => response.data });
}).catch(err => {
console.log(err);
reject('Username or password is incorrect');
})

TA貢獻1856條經(jīng)驗 獲得超5個贊
在您的客戶端請求中,您將發(fā)送一個 JSON 正文;但是在服務(wù)器上您需要 url 編碼的值。
您應(yīng)該更改客戶端以發(fā)送正確的數(shù)據(jù),例如像這樣encoding/json
,或者您需要通過在服務(wù)器端使用包解析它來接受 JSON 正文。

TA貢獻1834條經(jīng)驗 獲得超8個贊
使用 時您不必擔(dān)心字符串化axios。默認情況下,庫會自動執(zhí)行此操作。你應(yīng)該這樣做:
import axios from 'axios';
const api = axios.create({
baseUrl: 'http://localhost:4000/api'
})
async signIn(username, password) {
try {
const resp = await api.post('/authenticate', data);
return resp.data
} catch(error) {
throw new Error(error?.message || "something went wrong")
}
}
然后你可以在 React 組件中調(diào)用它。
signIn(username, password)
.then(data => setState(data))
.catch(err => alert(error.message)

TA貢獻1821條經(jīng)驗 獲得超5個贊
嘗試使用FormData。
const data = new FormData();
data.set('username', params.username);
data.set('password', params.password);
- 4 回答
- 0 關(guān)注
- 245 瀏覽
添加回答
舉報