【发布时间】:2014-10-04 12:43:57
【问题描述】:
我在尝试访问使用 Google 翻译的页面时遇到此错误:
XMLHttpRequest 无法加载 http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit。 请求中不存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“
http://localhost:8080” 访问。
我已经在 SO 上阅读了 multiple posts 关于这个问题的信息,但我还没有找到一种方法让它与我们初始化 Google 翻译小工具的方式一起工作。
提出的解决方案包括将dataType 设置为jsonp 并将Access-Control-Allow-Origin: * 添加到XMLHttpRequest 的标题中。但是,我没有像其他帖子中那样进行 AJAX 调用,只是使用 Google 提供的脚本初始化 Google Translate 元素:
<script type="text/javascript">
function googleTranslateElementInit() {
new google.translate.TranslateElement({pageLanguage: 'en',
layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
includedLanguages: 'fr,en'
}, 'hiddenGoogleTranslate');
</script>
<script type="text/javascript" src="//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit"></script>
如何定义dataType 或使用此初始化脚本向标题添加内容?我是 Javascript 新手,所以一定有一些我遗漏的东西。
谢谢!
【问题讨论】:
-
请考虑添加一个不赞成的理由,我知道有很多关于这个问题的帖子,但我没有找到任何使用 googleTranslateElementInit 脚本的帖子。
-
你能发布一个 jsfiddle 来演示这个问题吗?
-
我在这里试过 jsfiddle.net/zznv5tet 似乎没有抛出任何错误 - 你可以在这个样本的基础上构建吗?
-
@YuriyGalanter 实际上,它在您的 jsfiddle 中运行良好。当我们从一个页面导航到另一个页面时会出现问题,我不知道如何在 jsfiddle 中复制它..!
标签: javascript jquery json cross-domain google-translate