我在yii2中创建了angular2应用程序和REST api。
Yii2控制器是“yii \ rest \ Controller”
Angularjs和Angular2都非常不同。
我不明白如何在angular2 post请求中使用CSRF令牌。
Angular2和yii2没有任何联系。只在yii2中调用api。
答案 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>