私は RESTful API の専門家ではありませんがPUT/DELETE
、AngularJS アプリで単純な関数を使用し、これまで期待どおりに機能していました。この問題が自分のアプリにあるのか、それともエンドポイントを実行している (php) バックエンドにあるのかを調べようとしています。他の REST サービスは正常に機能しており、サーバーは正常に動作しているようです。
この関数は、次のように割り当てられた PUT または DELETE のみを呼び出しますvar method
。
if (food.favourite === true) {
method = "PUT";
console.log("method is " + method)
} else if (food.favourite === false) {
method = "DELETE";
console.log("method is " + method)
}
$http({
method: method,
url: $scope.URL
}).success(function (data, status, headers, config) {
console.log(method + " successful")
}).error(function (data, status, headers, config) {
console.log(method + " not successful")
});
$http GET
別のエンドポイントを使用するアプリが 1 つあります。アプリのどこにもこのエンドポイントを指していません$http GET
。広範囲に検索しました。
上記の $http を含む関数をトリガーすると、コンソールに次のように表示されます。
method is PUT
GET http://localhost:8888/api/ext/51/ 500 (Internal Server Error)
PUT not successful
GET
失敗した PUT 要求でエラーが発生するのはなぜですか? これは関数の問題ですか、それともエンドポイントの問題ですか?
この問題を理解するのに助けてくれてありがとう。
更新 1
[ネットワーク] パネルからの情報: 上記の $http 関数を呼び出すと、2 つのリクエスト (1 つは「PUT」、もう 1 つは「GET」) が同時にトリガーされます。「PUT」は 301 コードを返し、「GET」は 500 サーバー エラーを返します (このエンドポイントは「GET」に応答するように設定されておらず、「PUT」と「DELETE」にのみ応答するように設定されているため、これは予想されることです)。 ')。
では、なぜ私のコードは異なるメソッドで 2 つの同時リクエストを生成するのでしょうか?