如何在Angular2中使用Yii2 csrf令牌?

时间:2017-08-22 09:40:05

标签: yii yii2

我在yii2中创建了angular2应用程序和REST api。

Yii2控制器是“yii \ rest \ Controller”

Angularjs和Angular2都非常不同。

我不明白如何在angular2 post请求中使用CSRF令牌。

Angular2和yii2没有任何联系。只在yii2中调用api。

1 个答案:

答案 0 :(得分:0)

在您的SiteController中添加此功能以显示您的csrf令牌

public function actionCsrf()
{
    Yii::$app->response->format = Response::FORMAT_JSON;
    return [
        '_csrf' => Yii::$app->request->csrfToken
    ];
}

并添加隐藏在表单中的输入类型,例如 在html上

<form>
...
<input type="hidden" name="_csrf" id="_csrf" value="" />
...
</form>

make以您的角度获取ajax,它在jquery上的版本 在javascript

<script type="text/javascript">
    $.ajax({
        type : "GET",
        data : "",
        dataType: 'json',
        contentType: "application/json",
        url : "http://localhost/app/web/site/csrf",
        success : function(result){
            var resultObj = result;
            document.getElementById("_csrf").value = resultObj._csrf;
        }
    });
</script>