для корзины покупок я добавляю ссылку «Добавить в корзину». Благодаря добавлению события «click» я делаю запрос POST. Система отвечает: «Не удается найти токен csrf»; Вот код:Невозможно найти токен CSRF, поскольку я пытаюсь отправить данные POST по ссылке в Yii
'add to cart' => array(
'url'=>'Yii::app()->controller->createUrl("assortment/addtocart", array("id"=>$data[id], "YII_CSRF_TOKEN" => ' . Yii::app()->request->csrfToken. ', "csrf"=>' . Yii::app()->request->csrfToken . '))',
'click'=>"function(){
$.fn.yiiGridView.update('assortment-grid', {
type:'POST',
url:$(this).attr('href'),
// data:{YII_CSRF_TOKEN: " . Yii::app()->request->csrfToken . "},
/*success:function(data) {
$.fn.yiiGridView.update('assortment-grid');
}*/
})
return false;
}
",
),
Я добавил параметр «CSRF» в ссылке. Когда я раскомментирую data:{YII_CSRF_TOKEN: " . Yii::app()->request->csrfToken . "},
, запрос POST становится простым перенаправлением GET (csrf проверено). Мне не нужно обновлять сетку, поэтому я прокомментировал success:function(data)
. Поскольку не должно быть перенаправления, мне нужно сохранить запрос POST и ajax. Вы можете посмотреть на скриншоты формы POST:
Как это исправить? Могу ли я передать csrf в качестве параметра POST? Могу ли я добавить кнопку отправки POST в CGridView?
* * Первое требование выполняется ** ''enableCsrfValidation' => true' ** Второе **: поскольку я добавляю' $ request = ... 'a fring Grid и Brasket Grid и это поле параметра csrf с помощью 'CHtml :: Form(); ... CHtml :: endForm(); '- этот параметр НЕ передается в POST. Я предполагаю, что эта ссылка с событием 'click' не является кнопкой отправки формы. ** Как только я добавляю ** данные: ... в JS, POST становится запросом GET. –
' 'нажмите' => "JS:. Функция() { ' – cetver
я исправил, и это по-прежнему то же самое Теперь у меня есть это: 'нажмите' =>" JS: функция() { \t \t \t \t \t \t \t \t $ .fn.yiiGridView.update ('ассортимент сетки', { \t \t \t \t \t \t \t \t \t типа: 'POST', \t \t \t \t \t \t \t \t \t URL: $ (это) .attr ('HREF'), \t \t \t \t \t \t \t \t \t данные [ 'YII_CSRF_TOKEN'] =». Yii :: app() -> request-> csrfToken."; \t \t \t \t \t \t \t \t}); \t \t \t \t \t \t \t \t возвращение ложным; \t \t \t \t \t \t \t} \t \t \t \t \t \t \t", –