我使用GTranslate为Joomla在我的Joomla网站。一切都很顺利。最后一天,我观察到它停止工作,并在控制台中显示400个错误(加载资源失败:服务器响应状态为400 ())。
我在控制台里找到的
"https://translate.googleapis.com/translate_a/l?[object地图迭代器]=目标地图迭代器
Joomla版本是,3.10.1,GTranlator版本3.7.6
发布于 2021-12-04 20:54:24
问题在于这个文件"media/system/js/mootools-core.js“。特别是在守则的这一部分:
Array.from = function(a) {
return null == a ? [] : f.isEnumerable(a) && "string" != typeof a ? "array" == b(a) ? a : e.call(a) : [a]
}代之以:
old_array_from = Array.from;
Array.from=function(a){
return null==a
?[]
:f.isEnumerable(a)&&"string"!=typeof a
?"array"==b(a)
?a
:e.call(a)
:("object" == b(a))
?old_array_from(a)
:[a];
};解释:
Mootools版本1.4.5覆盖本机“from”Array方法。这会导致与使用Array.from()传递对象作为参数的人发生冲突。
最近,谷歌的API开始使用Array.from传递一个对象作为参数。注意,Google在查询字符串形成的这一部分中没有得到预期的结果:"?object Iterator=object Map“。查询字符串的形成应该类似于'...supportedLanguages?client=te&display_language=pt-BR&key=AIzaSyBwiZMn...‘。
上面传递的黑客在将对象作为参数传递时使用javascript的本机Array.from
发布于 2021-11-14 13:43:55
关于这个问题有很多讨论。有人指责Joomla 3.10。我已经和Gtranslate取得了联系,然后他们说去付费版。我已经与他们一起寻求解决方案,已经持续了6个星期。Mootools / Jaquery是我理解的问题。
https://stackoverflow.com/questions/69763143
复制相似问题