2016-06-21 82 views
0

我不斷收到:角+ Rails的:POST請求422/CSRF錯誤

無法驗證在2ms的完成422無法處理的實體CSRF令牌真實性 (ActiveRecord的:0.0ms)

我想做一個$ http請求來發佈一個新的數據庫條目。使用角度覆蓋RoR。

我的角度控制器內:

... 
$scope.createArea = function(data){ 
    var areaData = $scope.areaData; 
    var url = '/locations/' + locationService.id + '/floors/' + floorService.id + '/areas.json' 
    $http({ 
    url: url, 
    method: 'POST', 
    contentType: "application/json", 
    data: areaData 
    }); 
}; 

我的表格:

<div class="form-horizontal" id="new-area" ng-controller="mapsController"> 
    <form ng-submit="createArea(areaData)"> 
    <div id="name-group" class="form-group"> 
     <label>Name</label> 
     <input type="text" name="name" class="form-control" placeholder="Area Name" ng-model="areaData.name" /><br /> 

     <label>Group</label> 
     <select class="form-control"> 
     <option ng-repeat="group in groups" value="{{group.id}}" ng-model="areaData.groupID">{{group.name}}</option> 
     </select> 
    </div> 

    <button type="submit" class="btn btn-default">Create</button> 
    </form> 
</div> 
在我的rails控制器

def create 
    respond_to do |format| 
     format.json 
    end 
end 
+0

通常,您需要一個攔截器才能向您的rails端點發送請求之前創建某種類型的JWT。這是現有的應用程序還是新的應用程序? –

+0

現有。只需將一些功能移到Angular即可。我之前沒有提出任何問題,但通過jQuery而不是Angular。 –

+0

我覺得這篇文章詳細闡述了一點:http://stackoverflow.com/questions/14734243/rails-csrf-protection-angular-js-protect-from-forgery-makes-me-to-log-out-上。 –

回答