Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 2, 2011 01:30:33

damask
От:
Зарегистрирован: 2011-07-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение данных через Ajax

Задача: в текстовом поле вводится текст, по нажатию кнопки данные нужно отправить в БД. В скрипте написал следующее:

$(document).ready(function(){
$('#btn_add').click(function(){
var TextStory = $("#txt_story").val();
var MailStory = $("#mail_story").val();
$.ajax({
type: "POST",
url: "../instext",
data: "TextStory"+TextStory,
dataType: "json",
success:function(){
alert("Все отлично ушло на сервер");
},
error:function(){
alert("При отправке возникли проблемы");
}
});
});
});
В views такое:
def instext(request):
if 'TextStory' in request.POST and request.POST['TextStory']:
TheStory = request.POST['TextStory']
. . . . .
В результате ничего не приходит. Сервер показывает 500ю ошибку. Что не так?



Офлайн

#2 Авг. 2, 2011 07:33:32

d1ffuz0r
От: Moscow
Зарегистрирован: 2011-03-25
Сообщения: 127
Репутация: +  5  -
Профиль   Отправить e-mail  

Получение данных через Ajax

там c csrf надо что то мутить

Офлайн

#3 Авг. 2, 2011 09:22:58

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение данных через Ajax

Добавление джанговской куки к аякс запросам:
https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax

ЗЫ: Зачем такая длинная проверка?:

def instext(request):
the_story = request.POST.get('TextStory')
if the_story:
...do something...



Отредактировано (Авг. 2, 2011 09:24:10)

Офлайн

#4 Авг. 3, 2011 15:46:42

damask
От:
Зарегистрирован: 2011-07-19
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение данных через Ajax

А можно как то отключить эту защиту, или кто может конкретно объяснить, что именно нужно делать?



Офлайн

#5 Авг. 3, 2011 21:21:40

pill
От:
Зарегистрирован: 2010-08-27
Сообщения: 223
Репутация: +  0  -
Профиль   Отправить e-mail  

Получение данных через Ajax

damask
А можно как то отключить эту защиту, или кто может конкретно объяснить, что именно нужно делать?
В темплейте:
<script src="http://code.jquery.com/jquery-1.4.4.min.js"></script>
<script type="text/javascript">
Код из вышеприведенной ссылки
</script>
отключить - кажеться достаточно убрать ‘django.middleware.csrf.CsrfViewMiddleware’ из списка middleware в settings.py. Но 100% не гарантирую



Офлайн

#6 Авг. 4, 2011 09:59:43

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2267
Репутация: +  41  -
Профиль   Отправить e-mail  

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version