2016-09-08 7 views
0

私はAngularを初めて使用しています。私は$ httpサービスについて学び、現在はPOST経由でJSONデータを送信しようとしています。残念ながら、私はエラーが発生しています。私はこの問題に関して他の人々の投稿を読んでみましたが、問題の内容を理解できないようです。AngularJSの問題(POST 405メソッドが許可されていません)

私はこのエラーをなぜ受けているのか理解してくれ、それを修正する方法を提案できますか?

HTML

<!DOCTYPE html> 
<html ng-app = "app"> 
<head> 
    <title></title> 
</head> 
<body ng-controller = "ctrl"> 
    <form> 
     <input type="text" ng-model = "newDJ_name"> 
     <button ng-click = "addDJ(newDJ_name)">Add new DJ name</button> 
     <button ng-click = "show()">Show DJs</button> 
    </form> 

    <div ng-repeat = "dj in djs"> 

     {{dj.name}} 

    </div> 
</body> 

<script src = "angular.min.js"></script> 
<script src = "httpService.js"></script> 

</html> 

Javascriptを

var app = angular.module ("app",[]); 

app.controller ("ctrl",function ($scope,$http) { 
$scope.show = function() { 
     $http.get('djs.json').success(function(data){ 
      $scope.djs = data; 
     }) 
    }; 
$scope.addDJ = function (newName) { 
     $http.post('http://localhost:8080/Documents/Angular/djs.json',{name : newName}) 
     .success(function(data) { 
      $scope.djs = data; 
     }) 
     .error (function(data) { 
      console.log(":("); 
     }) 
    } 


}); 

JSONファイル

[{ 
    "name": "Adam Beyer", 
    "city": "Sweden", 
    "genre": "techno", 
    "label": "Drumcode" 
}, { 
    "name": "Richie Hawtin", 
    "city": "Detroit", 
    "genre": "techno", 
    "label": "Minus" 
}, { 
    "name": "Solomun", 
    "city": "Undefined", 
    "genre": "techno", 
    "label": "Dyinamic" 
}] 

When I try to add a new dj name

+1

あなたのAPIはメソッドとしてPOSTを除く外はありませんが、それは、バックエンドのAPIの問題です。 PostmanのAPIテストツールで試してみましたか? – jaym

+1

サービスの代わりに '.json'ファイルをあなたに投稿しようとしているようですね? –

答えて

1

データを.jsonファイルに直接POSTしようとしています。これは不可能です。

代わりに、サーバー上のWebサービスのエンドポイント記述:ファイルに -Accepts「POST」のフレーズとペイロードデータ -Writesデータを、あなたのケースでは、.JSONファイル が戻って意味のある応答を-Returnsファイルの作成の成功または失敗に基づいてAngularアプリに送信します。

注 - 既にデータが含まれている.JSONファイルを更新しようとしている場合は、既存のファイルをJSONとして解析し、新しいデータで変更してファイルに保存する必要があります。

は、あなたが得るためにWebサービスのフレーズを変更した場合、あなたは一般的に正常な応答が表示されるはずです。

// This will work 
$http.get('http://localhost:8080/Documents/Angular/djs.json') 
+0

私のためにそれをクリアしていただきありがとうございます! –

+0

助けてくれてうれしいです、もしあなたが助けてくれたら、この回答に正しいとマークすることを躊躇しないでください – Andurit

関連する問題