{"ERROR":"GET FROM SOURCE FAILED: E405"} ,七牛导致AJAX评论失效解决办法

{“ERROR”:“GET FROM SOURCE FAILED: E405”} ,七牛导致AJAX评论失效解决办法

AJAX评论错误

前天使用了七牛加速,静态文件全部通过CDN加速,减轻服务器负担,但是今天突然发现评论无法提交了,错误提示“{“error”:“get from image source failed: E405”}”,网上搜索了一下,发现不少人也有此类问题。主要原因是七牛CDN缓存了ajax评论脚本 commonts-ajax.js(有的是function.js)文件,所以提交时导致评论失效了。

七牛CDN插件修改解决方案

打开七牛插件目录,找到wpjam-qiniutek.php文件打开,定位至100行return $html前,插入以下代码:

1
$html = str_replace('http://7xt1tb.com2.z0.glb.qiniucdn.com/wp-content/themes/Tinection-master/includes/js/function.js', 'http://www.xuzizi.cn/wp-content/themes/Tinection-master/includes/js/function.js', $html);

其原理是插件已经修改静态文件原目录至CDN目录,我只需要再把function.js(如果你的是comments-ajax.js就改为comments-ajax.js所在路径)这一个文件的目录改回来即可,其中第一个路径是CDN服务器上function.js的路径,需要把它替换为第二个路径,即网站原文件路径,具体路径请根据你自己的网站作修改。

修改comments-ajax.js

在主题文件夹下找到comments-ajax.js打开,并且找到如下代码:

1
2
3
4
5
var i = 0, got = -1, len = document.getElementsByTagName('script').length;
while ( i <= len && got == -1){
var js_url = document.getElementsByTagName('script')[i].src,
got = js_url.indexOf('comments-ajax.js'); i++ ;
}

它一般在最开头的位置,然后在这段代码之后再添加一句代码,如下:

1
2
// 修复七牛cdn评论失效
js_url = js_url.replace(‘qiniu.xuzizi.cn’,’www.xuzizi.cn');

修改好之后 保存即可。 最后,还要到七牛里面将原来缓存的comments-ajax.js文件删除,若wordpress有缓存插件的也要删除一遍缓存。 刷新文章页面,让七牛更新缓存文件。 更新完毕之后,即可恢复评论功能。