2016-06-21 8 views
0

ich erhalte:Angular + Rails: POST-Anfrage 422/CSRF Fehler

Kann nicht CSRF-Token Authentizität Completed 422 Unprocessable Entity in 2ms überprüfen (Active: 0,0 ms)

Ich versuche, um eine $ http-Anfrage zu machen, um einen neuen Datenbankeintrag zu veröffentlichen. Verwenden von Angular über RoR.

in meinem Winkelregler:

... 
$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 
    }); 
}; 

meine Form:

<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> 

in meinen Schienen-Controller:

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

Normalerweise benötigen Sie einen Interceptor, um eine Art von JWT zu erstellen, bevor Sie Anforderungen an Ihren Rails-Endpunkt senden. Ist dies eine bestehende Anwendung oder eine neue Anwendung? –

+0

Vorhanden. Verschieben Sie nur einen Teil der Funktionalität auf Angular. Ich habe zuvor Anfragen ohne Probleme gestellt, aber durch jQuery anstelle von Angular. –

+0

Ich denke, dass dieser Beitrag ein wenig mehr darauf ausarbeitet: http://stackoverflow.com/questions/14734243/rails-csrf-protection-angular-js-protect-from-forgery-makes-me-to-log-out- auf. –

Antwort