-1

そこで、時間をかけて、自分でやっているプロジェクト用の簡単な API を作成しました。

Chrome の Postman アドオンを使用して PUT および DELETE クエストを模倣し、すべてが正しく機能することを確認しました。PHP の PUT および DELETE リクエストの欠点について多くのことを学んだので、本当にうれしく思います。

Postman で使用していた API を使用して、すべてを AngularJs コントローラーなどに移行し始めました。

ユーザーのログイン情報がこの特定の情報とは異なるため、ユーザーにデータベース内の行を要求させようとしています。データベース内の行を要求する put リクエストが機能しない理由がわかりませんでした。見よ、私のから解析されているデータにparsestr(file_get_contents('php://input'))は、JSON文字列である1つの配列キーがありました。

私は調べましたが、Stackoverflow または Google のいずれかを介して確かな答えを見つけることができないようです (おそらく、構成オプションのどこかでそれを見逃した可能性があります)。私の質問は次のとおりです$http.putデータをサーバーに正しく送信しますか?

4

1 に答える 1

0

この URLのリンクを教えてくれたユーザー Chandermani に感謝します。

上記のリンクから、別のユーザーが投稿したこのブログの投稿を見つけました。結局、私がやったのは次のことでした:

上記のリンクから機能を取得param()し、次のコード行を実装します。

var app = angular.module('ucpData', [] , function($httpProvider){
        $httpProvider.defaults.transformRequest = [function(data) {
            return angular.isObject(data) && String(data) !== '[object File]' ? param(data) : data;
          }];
    });

私が問題を回避した方法です。一部の開発者にとっては、実際にはデフォルトの transformRequest 設定を維持したい場合がありますが、私が行っているプロジェクトではparam()、ある時点で呼び出すのを忘れてしまうことを知っており、とにかく私のサーバーは自然に json データを受け入れません。今後の開発者は、transformRequest 配列を直接変更する前に、何をしようとしているのかを検討するように注意してください。

于 2014-08-25T08:27:31.713 に答える