![](/img/trans.png)
[英]Getting error in Google Transliterate API in javascript
[英]Javascript google transliterate API not served over https
JavaScript google 音译 API 不通过 https 提供服务。 我低于混合内容错误。 它在 http 网站上工作,但不适用于 https。 我尝试通过以下所有方式调用 API。
<script type="text/javascript" src="https://google.com/jsapi">
<script type="text/javascript" src="http://google.com/jsapi">
<script type="text/javascript" src="//google.com/jsapi">
<script type="text/javascript" src="//www.google.com/jsapi">
错误:
混合内容:“ https://extranuclear-freque.000webhostapp.com/lang.html ”上的页面已通过 HTTPS 加载,但请求了不安全的脚本“ http://www.google.com/inputtools/request?text=” gy&ime=transliteration_en_bn&num=5&cp=0&cs=0&ie=utf-8&oe=utf-8&app=jsapi&uv&cb=回调._2j46jfkrs '。 此请求已被阻止; 内容必须通过 HTTPS 提供。
请帮帮我。 谢谢
<pre> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <script type="text/javascript" src="https://www.google.com/jsapi"> </script> <script type="text/javascript"> google.load("elements", "1", { packages: "transliteration" }); function onLoad() { var options = { sourceLanguage: google.elements.transliteration.LanguageCode.ENGLISH, destinationLanguage: [google.elements.transliteration.LanguageCode.BENGALI], shortcutKey: 'ctrl+g', transliterationEnabled: true }; var control = new google.elements.transliteration.TransliterationControl(options); control.makeTransliteratable(['transliterateTextarea']); } google.setOnLoadCallback(onLoad); </script> </head> <body> <textarea id="transliterateTextarea" style="width:600px;height:200px"></textarea> </body> </html> </pre>
我找到了一种解决上述错误的解决方案,您只需在上传服务器时将此行粘贴到 Meta 标记下方即可..如果您觉得这有帮助,请告诉我..
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
将此( https://www.google.com/uds/api/elements/1.0/7ded0ef8ee68924d96a6f6b19df266a8/transliteration.I.js )文件保存在本地
找到 "qi="http://www.google.com" 然后将其更改为 qi="https://www.google.com"
它会工作
这是对@Nitin Goyal 上一个回答的描述
我对这个问题进行了研究,发现谷歌在translationI.js 中有硬核
要解决此问题,您可以将该文件下载到您的计算机并上传到您自己的服务器并将http://google.com更改为https://google.com以解决您的问题
首先,有一个指向 API 的链接:
<script type="text/javascript" src="https://www.google.com/jsapi">
其次,访问上面的API链接并搜索如下内容:
google.loader.ServiceBase = 'https://www.google.com/uds';
现在,这是重要的部分!
您需要替换google.loader.ServiceBase = 'yourfile.js';
的链接
注意: yourfile.js是您创建的脚本。
要做到这一点 - 您需要创建两个单独的 JavaScript 文件。 为什么? 因为 google.loader.ServiceBase 在 google.com/jsapi 里面
这是我做的过程:
第 1 步:创建两个 JavaScript 文件 - 比如说main.js和extra.js
第二步:将https://www.google.com/jsapi的内容保存到main.js
第三步:将https://www.google.com/uds/api/elements/1.0/7ded0ef8ee68924d96a6f6b19df266a8/transliteration.I.js的内容保存到extra.js
第4步:在extra.js中-找到qi="http://www.google.com"
并替换为qi="https://www.google.com"
-记住http改为https并保存。
第 5 步:现在回到main.js - 你必须找到the google.loader.ServiceBase = 'https://www.google.com/uds';
并替换为google.loader.ServiceBase = 'extra.js';
并保存它。
第 6 步:调用 javascript - main.js之一到您的 html。
<script type="text/javascript" src="main.js">
为所有面临弹出窗口未正确显示问题的人扩展 Min Somai 的回答。
<link type="text/css" href="assets/google/js/transliteration.css" rel="stylesheet"/>
var control =
new google.elements.transliteration.TransliterationControl(options);
var ids = ["transl1", "transl2"];
control.makeTransliteratable(ids);
//Add the following line to make it work over https
control.c.qc.t13n.c[3].c.d.keyup[0].ia.F.p = 'https://www.google.com';
工作演示:
<html> <head> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript"> google.load("elements", "1", { packages: "transliteration" }); function onLoad() { var options = { sourceLanguage: [google.elements.transliteration.LanguageCode.ENGLISH], destinationLanguage: [google.elements.transliteration.LanguageCode.HINDI ], shortcutKey: 'ctrl+g', transliterationEnabled: true }; var control = new google.elements.transliteration.TransliterationControl(options); // Enable transliteration in the textbox with id 'transliterateTextarea'. control.makeTransliteratable(['transliterateTextarea']); //Add the following line to make it work over https control.c.qc.t13n.c[3].cdkeyup[0].ia.Fp = 'https://www.google.com'; } google.setOnLoadCallback(onLoad); </script> </head> <body> <textarea id="transliterateTextarea" style="width:600px;height:200px">यहाँ टाइप करे ...</textarea> <p>(Press Ctrl+g to toggle between English and Hindi)</p> </body> </html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.