Axiosを使用してオブジェクトをAPIに送信する方法はありますか?
これは私が使用するコードです:
_axios.get('/api/phones/create/', {
parameters: {
phone: this.phone
}
})
.then(response => {
console.log(response.data)
})
.catch(function (error) {
console.log(error)
})
_
pHP側では、次のものがあります。
_public function create($phone)
{
return $phone;
}
_
次のエラーが発生します。
_GET http://crm2.dev/api/phones/create 500 (Internal Server Error)
dispatchXhrRequest @ app.6007af59798a7b58ff81.js:256
xhrAdapter @ app.6007af59798a7b58ff81.js:93
dispatchRequest @ app.6007af59798a7b58ff81.js:662
app.6007af59798a7b58ff81.js:2266 Error: Request failed with status code 500
at createError (app.6007af59798a7b58ff81.js:600)
at settle (app.6007af59798a7b58ff81.js:742)
at XMLHttpRequest.handleLoad (app.6007af59798a7b58ff81.js:158)
_
試してみると、axios.get('/api/phones/create/hello')
コンソールログにhello
が記録されます。
これを行う方法はありますか?
「オブジェクトを送信する」とはどういう意味かによって異なります。
GETリクエストを使用していて、パラメータでオブジェクトを渡すので、GETリクエストの一部としてクエリパラメータにシリアル化できます。これは実際にはオブジェクトを送信しませんが、GETリクエストのURLのクエリセクションを構築するために使用します。
たとえば、/api/phones/create?phone=123
にリクエストを送信する方法は次のとおりです。
axios.get('/api/phones/create/', {
params: {
phone: '123'
}
})
オブジェクトをシリアル化されたJSONとしてAPIに実際に送信する場合は、APIのセマンティクスに応じて、POSTまたはPUTリクエストを使用できます。
たとえば、{ "phone": "123" }
をAPIに送信するには、次のようにします。
axios.post('/api/phones/create/', {
phone: '123'
});
注:axiosはパラメーターにキーparams
を必要とします。
まず、params
の代わりにparameters
を試してください。
Axiosはpromiseに依存しています古いブラウザをサポートしたい場合は、コードに promise polyfillを追加 する必要があるかもしれません。
これがサンプルリクエストです。詳細については、 公式ドキュメント をお読みください。
axios.get('/url', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});