質問

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'}
                },
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top