2016-09-08 4 views
4

Я работаю над ionic и использую Django с django-rest-framework как бэкэнд. Я попытался отправить к моему серверу с $http следующим образом:ionic/angularjs с django csrf работает на локальном сервере, но не работает на устройстве

$http({ 
    url: url, 
    method: method, 
    data: { 
    // some data 
    } 
}).success... 

Также я установил следующее в моей конфигурации:

$httpProvider.defaults.xsrfCookieName = 'csrftoken'; 
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken'; 

Я также попытался ngCookies но $cookies.csrftoken не возвращает ничего.

Вот мой бэкенд код:

class Mark(APIView): 
    def post(self, request): 
     # do something 
     return Response({ 
      # something 
     }) 

Это отлично работает, когда я использовал ионную локальный сервер ionic serve, но когда я построить его на IOS эмуляторе или на моем iPhone, CSRF 403 появляется:

{"detail":"CSRF Failed: CSRF token missing or incorrect."} 

вернулся с сервера.

Любая идея по этому вопросу? Спасибо огромное!

+0

Я не думаю, что вам нужно CSRF токены при разработке мобильных приложений. – Windsooon

+0

APIView не требует csrf_token – arcegk

ответ

6

Я не думаю, что эта информация исправит вашу проблему, вы, вероятно, столкнетесь с ней позже. В iOS файлы cookie теряются при перезагрузке приложения, используйте window.localStorage для их хранения.

См Ответ: Can you use cookies in a Cordova application?

+0

СПАСИБО! Я узнал из вашей ссылки, и она работает хорошо! –