4 回答

TA貢獻1829條經驗 獲得超7個贊
可行的解決方案是使用qs包對數據進行字符串化。
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條經驗 獲得超5個贊
在您的客戶端請求中,您將發送一個 JSON 正文;但是在服務器上您需要 url 編碼的值。
您應該更改客戶端以發送正確的數據,例如像這樣encoding/json
,或者您需要通過在服務器端使用包解析它來接受 JSON 正文。

TA貢獻1834條經驗 獲得超8個贊
使用 時您不必擔心字符串化axios。默認情況下,庫會自動執行此操作。你應該這樣做:
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 組件中調用它。
signIn(username, password)
.then(data => setState(data))
.catch(err => alert(error.message)

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