作者:亚艾元技术部
Mega menu配置的时候,添加了一个区块,但是保存不了,用开发者工具查看了一下,出错了。
Mixed Content: The page at 'https://www.yaiyuan.com/admin/structure/we-mega-menu/main/config' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://www.yaiyuan.com/admin/structure/we-mega-menu/save'. This request has been blocked; the content must be served over HTTPS.
根据路径查找源代码,对应的js:
$.ajax({ type: "POST", url: drupalSettings.WeMegaMenu.saveConfigWeMegaMenuURL, data: { 'action': 'save', 'menu_name': menu_name, 'theme': theme, 'data_config': JSON.stringify(data_config) },
对应的PHP:
$abs_url_save_config = Url::fromRoute('we_megamenu.admin.save', [], ['absolute' => TRUE])->toString(); $abs_url_reset_config = Url::fromRoute('we_megamenu.admin.reset', [], ['absolute' => TRUE])->toString(); $abs_url_icons_config = Url::fromRoute('we_megamenu.geticons', [], ['absolute' => TRUE])->toString(); $build['#attached']['drupalSettings']['WeMegaMenu']['saveConfigWeMegaMenuURL'] = $abs_url_save_config; $build['#attached']['drupalSettings']['WeMegaMenu']['resetConfigWeMegaMenuURL'] = $abs_url_reset_config; $build['#attached']['drupalSettings']['WeMegaMenu']['iconsWeMegaMenuURL'] = $abs_url_icons_config;
we_megamenu\src\Controller下面的WeMegaMenuAdminController.php文件中。
将['absolute' => TRUE]改为FALSE,应该就可以了。
深层次的原因,是我们给网站的nginx服务器多加了一层代码,后端访问Drupal的时候,使用的http。
将代理的https传递过来,应该会比较好。