Добрый день. Создал такой контроллер: PHP: <?php namespace app\controllers; use Yii; use yii\web\Controller; class PostController extends Controller{ public function actionTest() { $result = [1,2,3,4,5,6]; return json_encode($result); } } Стучусь к нему через angular Код (Javascript): var app = angular.module('myApp', []); app.controller('customersCtrl', function($scope, $http) { //var authToken = document.querySelector('meta[name="csrf-token"]').getAttribute('content'); //$http.defaults.headers.post['My-Header'] = authToken; $http.get("post/test").then(function (response) { console.log(response.data); }); }); Почему yii2 отдает данные если даже нет csrf токена? --- Добавлено --- Так , он вообще отдает данные по url http://localhost/post/test как этого избежать? --- Добавлено --- Так не отдаст конечно, но и ангуляру тоже PHP: if($request->isAjax) { $result = [1,2,3,4,5,6]; return json_encode($result); }
@Artur_hopf, для реализации API есть разные стандартные поведения, которые можно навесить на контроллер. И проверяется не CSRF-токен обычно, а какой-нибудь авторизационный, типа jwt. https://www.yiiframework.com/doc/guide/2.0/ru/rest-authentication
@ADSoft, поведения --- Добавлено --- Посредников обещают в третьей версии, хотя, куда она сейчас идёт, мне не нравится. Потеряли то, что было удобно во второй версии, а то, что удобно у конкурентов - не получили.