LaravelへのAngularJS $リソース要求 - 投稿して
-
21-12-2019 - |
質問
Laravelアプリケーションへの$resource
を使用してRESTリクエストを送信するのに苦労しています。まず第一に、$resource
Postメソッドはリクエストペイロードを送信します。これはLaravelで読み取ることができませんので、代わりにx-www-form-urlencoded
を送信するように要求を変換しなければなりませんでした。これはデフォルトではありませんか?
もう1つの問題は、今回はLARVERでのPUT方法です。 Laravel Restful ControllerがPUTメソッドをサポートしていないことがわかりました。代わりに、POSTリクエストを送信し、Parameterとして_method: 'PUT'
を含める必要があります。これが即興コードです:
factory('User',function($resource){
return $resource(apiPath + 'user/:id', {}, {
update: {
method: 'POST',
params: {id: '@id'},
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
transformRequest: transform()
}
})
}
.
今すぐPUTリクエストを送信したい場合は、次のようなことをしなければなりません。
var userData = {id: 1, firstName: 'John', lastName: 'Doe'};
userData._method = 'PUT';
User.update(userData);
.
だからPUTリクエストをしたいときに_method
を'PUT'
に設定する代わりに、手動で手動で設定します。デフォルトにする方法はありますか?
それとも、私は間違ったことをしています、これをするより良い方法はありますか?私は本当に残りのことを理解していません、それがサポートされていないのか(laravel)? Twitter APIは投稿してgetを使っています。私が間違っているなら私を修正してください。ありがとう。
解決
このようにしてみてください:
update: {
method: 'POST',
params: {id: '@id'},
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
transformRequest: function(data){
data._method = 'PUT';
return data;
}
}
. 他のヒント
この方法のみが私のために機能しました...
'update': {
url: 'urlTOApi/product/:id' + '?_method=PUT',
method: 'POST',
params: {id: '@id'},
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
},
. 所属していません StackOverflow