gbalamurugan Ответов: 1

Javascript Google transliterate API не обслуживается по протоколу https


JavaScript google transliterate API is not serving over https. Im getting below mixed content error . Its working over http website, but not working with https. I have tried to invoke the API in all the below ways.

Ошибка
Mixed Content: The page at 'https://extranuclear-freque.000webhostapp.com/lang.html' was loaded over HTTPS, but requested an insecure script '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=callbacks._2j46jfkrs'. This request has been blocked; the content must be served over HTTPS.


Что я уже пробовал:

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <script type="text/javascript" src="https://google.com/jsapi">    
      // Load the Google Transliterate API
      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
        };

        // Create an instance on TransliterationControl with the required
        // options.
        var control =
            new google.elements.transliteration.TransliterationControl(options);

        // Enable transliteration in the textbox with id
        // 'transliterateTextarea'.
        control.makeTransliteratable(['transliterateTextarea']);
      }
      google.setOnLoadCallback(onLoad);
    </script>
  </head>
  <body>
    Type in Hindi (Press Ctrl+g to toggle between English and Hindi)<br>
    <textarea id="transliterateTextarea" style="width:600px;height:200px"></textarea>
  </body>
</html> 

Mohibur Rashid

вы пробовали это сделать
https://stackoverflow.com/questions/18327314/how-to-allow-http-content-within-an-iframe-on-a-https-site -что ?

1 Ответов

Рейтинг:
2

Richard Deeming

Этот API был устаревшим семь лет назад!

Google Transliterate API официально устарел с 26 мая 2011 года.

То политика устаревания[^] говорит, что они сделают все возможное, чтобы сохранить его в течение трех лет с этой даты. После этого они могут отозвать API в любое время, без предварительного уведомления.

Вы вероятно уметь пользоваться обновления безопасности-запросы[^] CSP для принудительной загрузки скрипта по протоколу HTTPS. Но нет никакой гарантии, что это сработает, и очень реальна вероятность того, что Google прекратит работу API без предварительного уведомления и сломает ваш сайт.

Вам нужно будет найти альтернативный API для удовлетворения ваших требований.