Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение alexa777 »

При попытке удалить картинку через Ajax запрос выдает

yii\web\BadRequestHttpException: Не удалось проверить переданные данные

Вот сам код

Код: Выделить всё

//html
<span class="delete_link_img glyphicon-trash"  onclick="deletImage(' . $img->id . ')"></span>

//js
 function  deletImage(id){
    var request = new XMLHttpRequest();
    request.open('POST','/item/delete-image?id='+id,true);
    request.send(); 
  };

Что делать?
Выключать public $enableCsrfValidation = false; на весь контролер не думаю хорошей идеей
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение urichalex »

Использовать $.ajax()
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение alexa777 »

urichalex писал(а): 2019.02.18, 13:28 Использовать $.ajax()
а я не хочу использовать jquery

Мне посоветовали вставить Csrf токен в запрос я сделал так но нечего не вышло, кто знает что не так?

function deletImage(id){
var request = new XMLHttpRequest();
var csrf = '\yii::$app->request->csrfParam => \yii::$app->request->csrfToken';
request.open('POST','/item/delete-image?id='+id,true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send(csrf);
};
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение SiZE »

Код: Выделить всё

var csrf = '\yii::$app->request->csrfParam => \yii::$app->request->csrfToken';
тут все не так
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение alexa777 »

SiZE писал(а): 2019.02.18, 15:57

Код: Выделить всё

var csrf = '\yii::$app->request->csrfParam => \yii::$app->request->csrfToken';
тут все не так
Так скажите как надо, не томите)
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение SiZE »

alexa777 писал(а): 2019.02.18, 16:23
SiZE писал(а): 2019.02.18, 15:57

Код: Выделить всё

var csrf = '\yii::$app->request->csrfParam => \yii::$app->request->csrfToken';
тут все не так
Так скажите как надо, не томите)
Тут форум по фреймворку Yii, а не по азам программирования на рнр и javascript.

http://php.net/manual/ru/language.basic-syntax.php
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение alexa777 »

SiZE писал(а): 2019.02.18, 16:28
alexa777 писал(а): 2019.02.18, 16:23
SiZE писал(а): 2019.02.18, 15:57

Код: Выделить всё

var csrf = '\yii::$app->request->csrfParam => \yii::$app->request->csrfToken';
тут все не так
Так скажите как надо, не томите)
Тут форум по фреймворку Yii, а не по азам программирования на рнр и javascript.

http://php.net/manual/ru/language.basic-syntax.php
Ну и как, ЧСВ повысилось?
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение alexa777 »

Может комунибудь понадобится, я нашел способ передачи токена , думаю самый оптимальный это yii.getCsrfToken()


<span class="delete_link_img glyphicon-trash" onclick="deletImage( yii.getCsrfToken() , ' . $img->id . ')"></span>


<code lang="javascript">
function deletImage(csrf, id){
var request = new XMLHttpRequest();
request.open('POST','/item/delete-image?id='+id,true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
request.setRequestHeader('X-CSRF-Token', csrf);
request.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
request.send(encodeURI(csrf));


};
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение SiZE »

alexa777 писал(а): 2019.02.18, 17:05 Ну и как, ЧСВ повысилось?
Ты можешь посмотреть мои сообщения на форуме, чтобы понять на сколько оно сильное.

P.S. Ты не знаешь синтаксис php и js о чем речь то может идти на этом форуме? Тут сопли никто никому подтирать не обязан.

P.P.S. Твое решение несколько избыточно, во первых yii.getCsrfParam() вместо csrf и во вторых нет смысла передавать это все аргументами.
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение alexa777 »

SiZE писал(а): 2019.02.19, 06:15
alexa777 писал(а): 2019.02.18, 17:05 Ну и как, ЧСВ повысилось?
Ты можешь посмотреть мои сообщения на форуме, чтобы понять на сколько оно сильное.

P.S. Ты не знаешь синтаксис php и js о чем речь то может идти на этом форуме? Тут сопли никто никому подтирать не обязан.

P.P.S. Твое решение несколько избыточно, во первых yii.getCsrfParam() вместо csrf и во вторых нет смысла передавать это все аргументами.
Так зачем ты мне вообще пишешь? Попробуй самоутвердится в другом месте, например на улице.
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение SiZE »

alexa777 писал(а): 2019.02.19, 09:10 Так зачем ты мне вообще пишешь? Попробуй самоутвердится в другом месте, например на улице.
Все просто, чтобы твое "решение" не использовали "как есть". Спасибо за совет, обязательно им не воспользуюсь :D
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение alexa777 »

SiZE писал(а): 2019.02.19, 12:46
alexa777 писал(а): 2019.02.19, 09:10 Так зачем ты мне вообще пишешь? Попробуй самоутвердится в другом месте, например на улице.
Все просто, чтобы твое "решение" не использовали "как есть". Спасибо за совет, обязательно им не воспользуюсь :D
Те кто будет искать такое решение такие же как и я, только учатся. И от того что ты написал так не пользуйтесь им легче не станет, потому что другого они в голове нечего не изобретут если только учатся.
Напиши как надо, если хочешь принести пользу тем кто будет решать подобную проблему.
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение urichalex »

alexa777 писал(а): 2019.02.19, 16:20 Напиши как надо, если хочешь принести пользу тем кто будет решать подобную проблему.
Я написал, как надо. Ты не захотел использовать
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: Ajax запрос выдает ошибку yii\web\BadRequestHttpException:

Сообщение alexa777 »

urichalex писал(а): 2019.02.19, 18:07
alexa777 писал(а): 2019.02.19, 16:20 Напиши как надо, если хочешь принести пользу тем кто будет решать подобную проблему.
Я написал, как надо. Ты не захотел использовать
Я хочу использовать JS потому что изучаю js, думаю что вначале надо изучить язык а потом фреймворки на js
Ответить