1

iOSアプリで消費されると思われるdjango Webサービスを作成しました。私は特に問題なくGETリクエストを取得することができましたが、POSTの使用を開始した瞬間に403が発生しました.csrfである可能性があることを読んだので、試しました

from django.views.decorators.csrf import csrf_exempt
@csrf_exempt

もちろん、それは機能します!

ここに私のジャンゴビューコードがあります

questionAnswer = request.POST['questionAnswer']
facebookID = request.POST['facebookID']
if Question.objects.get(pk=int(question_id)).meaning == questionAnswer:
    u = User.objects.get(fbid = facebookID)
    u.questions_answered = u.questions_answered + 1
    u.save()
    dictForSend = {'didAnswerCorrect' : 'True'}
    jsonq = json.dumps(dictForSend)
    return HttpResponse(jsonq, content_type='application/json')
else:
    dictForSend = {'didAnswerCorrect' : 'False'}
    jsonq = json.dumps(dictForSend)
    return HttpResponse(jsonq, content_type='application/json')

ここに私の目的のCコードがあります

NSDictionary *postDict = @{ @"questionAnswer": questionAnswer, @"facebookID": facebookID};
NSString *myDictInJSON = [postDict JSONRepresentation];
NSData *postData = [myDictInJSON dataUsingEncoding:NSUTF8StringEncoding];

NSString *URLForSend = [NSString stringWithFormat:(@"http://127.0.0.1:8000/questions/checkanswer/%@/") , questionID ];
NSURL *url = [NSURL URLWithString:URLForSend];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
    NSLog(@"%@", JSON);
} failure:nil];
[operation start];

ターミナルライン

"POST /questions/checkanswer/1/ HTTP/1.1" 403 2282

私のアプリにcsrfを組み込む方法はありますか?

4

1 に答える 1