SSL中断定制器:页面未从AJAX返回

时间:2015-06-17 作者:Kelly Carter

我使用Comodo SSL证书安装了WordPress。我有WordPress HTTPS plugin 已安装,我正在使用AZ主题,管理员设置为通过HTTPS加载。到目前为止还不错。

在主题定制器上,我得到了一个永久加载图标(不要与WSOD混淆)。带回主页内容的AJAX调用为空,除了WP_CUSTOMIZER_SIGNATURE 代币这就是所有的回应。当我禁用WordPress HTTPS插件(或者禁用通过SSL加载管理员)时,定制器工作得很好。禁用/启用其他插件无效。这也发生在股票二十一五主题中(如下图所示)。

下面是我在Firebug中看到的屏幕截图(可以在浏览器和Browserstack虚拟机上复制):

Screenshot of Firebug console in customizer view

如果相关,该网站将使用ServerPilot托管在DigitalOcean droplet上。我有其他WordPress站点托管在同一个微滴上,而另一个启用SSL的站点表现出相同的行为。ModSecurity 据我所知,没有安装,我得到了200状态码,所以我认为this issue.

此外SHA-1 据我所知,消息似乎是误报(而且我认为Firefox还没有阻止基于SHA-1 使用方法?)。我不认为zlib.output_compression bug 或者,因为我已经明确关闭它进行测试,并尝试了该票据中列出的修复,但没有成功。

我没有找到任何与我的问题完全匹配的东西,这让我觉得我忽略了一些愚蠢的事情。非常感谢您的帮助,请告诉我哪些其他信息可能会有所帮助。

2 个回复
最合适的回答,由SO网友:Ethan O\'Sullivan 整理而成

根据您的问题,我假设这是您用于启用SSL的插件:WordPress HTTPS.

考虑到插件已经两年没有更新了,而且他们的支持问题也没有得到解决,可能与最新版本的WordPress(撰写本文时为4.6)存在一些兼容性问题。我建议您确保您网站的URL在任何地方都运行HTTPS。

这可以通过在数据库中执行以下SQL查询来完成(phpMyAdmin):

UPDATE wp_options SET option_value = replace(option_value, \'HTTP_URL\', \'HTTPS_URL\') WHERE option_name = \'home\' OR option_name = \'siteurl\';
UPDATE wp_posts SET guid = replace(guid, \'HTTP_URL\',\'HTTPS_URL\');
UPDATE wp_posts SET post_content = replace(post_content, \'HTTP_URL\', \'HTTPS_URL\');
UPDATE wp_postmeta SET meta_value = replace(meta_value,\'HTTP_URL\',\'HTTPS_URL\');
将这些值替换为以下值:

SO网友:Luis

ANSWER:这是由于您的全局URL不一致造成的

我猜在某种程度上,你插件的字符串定制器无法识别一些仍然被调用的元素http 而不是https, 许多插件包含绝对路径而不是相关路径,因此,为了修复整个平台:管理、内容和包含,您可以执行以下操作。

安装一个名为WP Migrate DB

  • 一旦安装并激活,转到工具->迁移数据库,新url必须相同,因此文件路径也必须相同
  • 将其保存到特定目录,单独保存为其未压缩副本
  • 在终端中转到该目录并执行以下命令:
  • sudo find . -type f -name \'*.sql\' -exec sed -i \'\' s,http://yoursite,https://yoursite,g {} +

    <上传新文件,并将其导入phpmyadmin或web dbms。

    必须消除错误。

    IMPORTANT.

    如果它不起作用,您可以将第5步的备份原封不动地保留下来。

    ADDITIONAL INFO.是否检查网站根URL以开头https 而不是http?

    您可以在“设置”->“常规”上进行检查

    WordPress地址(URL)

    网站地址(URL)

    祝你好运

    结束

    相关推荐

    是否可以使用系统cron来触发与AJAX API挂钩的函数

    我有一个真正的cron作业设置,它似乎可以工作。我已经概述了以下基本内容。我问的原因是我没有看到经常提到的这种方法,我想知道这是不是因为这样做是个坏主意?我不想使用wp-cron 和禁用wp-cron 在我的网站上,即使使用真正的cron运行,也会在其他地方引起问题(*/wp-cron.php?doing_wp_cron)Below is an example of what I\'m doing:Functionadd_action(\'wp_ajax_my_function\', \'my_funct