在Magento 2.0中使用javascript获取form_key?

时间:2016-01-24 20:28:30

标签: magento magento2 magento-2.0

我想从Magento外部创建一个自定义登录页面。为此,我需要获取form_key。

如何从Magento外部使用javascript和/或PHP获取当前的form_key?

备注:

我愿意在Magento中添加一个PHP文件来生成for_key(但我不知道写什么以及放在哪里)。

我是Magento的新手。

我正在运行Magento 2.0。

我想出了这个解决方案。但请找一个更好的人!

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Get the form key</title>
<script>

window.onload=function(){

/* Get form_key from Magento */
var ajax = new XMLHttpRequest();
ajax.open("POST", "/", false);
ajax.send();
document.getElementById('hidden_div').innerHTML = ajax.responseText;
var the_form_key = document.getElementsByName("form_key")[0].value;

alert(the_form_key);

};

</script>
</head>
<body>

<div id="hidden_div" style="display:none"></div>

</body>
</html>

2 个答案:

答案 0 :(得分:3)

对于frontend区域,请使用jQuery.cookie插件,该插件是Magento 2的一部分:

var $formKey = jQuery.cookie('form_key');

对于adminhtml区域使用FORM_KEY JavaScript常量:

var $formKey = FORM_KEY;

答案 1 :(得分:1)

在以下示例中: vendor/magento/module-checkout/view/frontend/web/js/sidebar.js

define([
    'jquery',
    ..
    'mage/cookies'
'form_key': $.mage.cookies.get('form_key')

我在admin(后端名称空间)中看到有很多对window.FORM_KEY的呼叫