动态域名跨域解决启用CDN无法正常请求问题'Access-Control-Allow-Origin'的原因和解决办法
前言
前几天给博客换了个CDN后由于时间原因就没多看了,直到昨天调式的时候才发现,纳尼,这是啥情况(如图),咋这么多错误了 。
经过一段时间的搜集,终于在网上找到了解决办法。出现这种情况是由于用户与浏览器之间是HTTPS交互,但实际上PHP接收到的是来自CDN的 HTTP 交互,所以PHP使用了 HTTP 进行响应,结合Typecho的一些特性形成了这个问题。简单说就是CDN开启了HTTPS,但使用的是HTTP回源,就出现了这种情况。
解决办法
{card-default label="办法一" width=""}
进入你网站所使用的CDN控制后台,把回源协议改为:HTTPS即可(改完记得刷新缓存,部分需要等一会才会生效),这里不做演示。
此方法增加网站源IP地址泄漏风险,此处暂不展开叙述。
{/card-default}
{card-default label="办法二(ty推荐)" width=""}
1.打开网站根目录
2.找到 config.inc.php 文件并打开
3.在图示部位添加代码并保存即可
为什么推荐这个方法呢,因为Typecho后台只能绑定一个域名,如果绑定多个域名时其它域名域名只能显示主页,插件等页面会报错,但是加上这个就不会了,所以还是提前改了吧。
{/card-default}
在适当位置加入如下代码
// 动态域名跨域
define('__TYPECHO_SECURE__',true);