我想从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>
答案 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
的呼叫