質問

Django RESTフレームワークを使用しています。 APIの書き方は、ページ上のデータを手動で入力した場合: http://example.com/jp/ API / v1 / add_comment /

View.py(API)

class AddComment(generics.CreateAPIView):
"""
Create new comment.
Example API structure:
{
    "post_pk": 1,
    "name": "MyName",
    "email": "example@email.com",
    "text": "This is text message!"
}
"""
model = Comment
serializer_class = CommentSerializers
.

とAPIが機能します。

controllers.js

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

app.controller('CommentAddCtrl', function($scope, Restangular){
    $scope.logComment = function(mail, name, text){
        var url = window.location;
        var pk = url.hash.split('$pk:')[1];
        var url_add_comment_api = './en/api/v1/add_comment';

        if (mail === undefined || name == undefined || text === undefined)
            alert ('Error!');
        else {
            var comment = {
                  post_pk: pk,
                  name: name,
                  email: mail,
                text: text
                };
            this.add_comment = Restangular.all(url_add_comment_api).post(comment);
            }           
    };
});
.

コンソールがエラーを得たとき: post /api/v1/add_comment/ 403(禁止)

役に立ちましたか?

解決

そこにどこかにCSRFトークンがないかもしれません。もっと見る: Django Cross Site Request Furnery Protection

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top