Гугл переводчик ломает мой загруженный AJAX (относительный URL) контент - PullRequest
0 голосов
/ 11 декабря 2018

Похоже, это должно быть распространенной проблемой, но я не могу найти решение здесь или в более широкой сети.Наш сайт загружает контент через AJAX-вызовы на сервер с относительными URL-адресами (например, с использованием jQuery):

$("#mydiv").load("sku123.html", 
  function(response, status, jqXHR) {
    if (status=="error") {
      // Failed
    }
  }
);

Работает нормально, пока пользователь не запросит перевод нашей страницы в Google, затем вызов AJAX вернет

Failed to contact server, connection failed.

Я заметил, что window.location.href показывает сервер Google Translate, а не наш собственный.Так что я думаю, что этот вызов AJAX отправляется в Google, который, конечно, ничего не знает о HTML, который мы пытаемся получить (хотя я ожидаю 404, а не «соединение не установлено»).

Это должно быть распространенной проблемойно что такое хорошее решение?Я не хочу жестко кодировать наш сервер в эти URL-адреса (тогда это будет нарушено в наших системах разработки / тестирования).

1 Ответ

0 голосов
/ 11 декабря 2018

Консоль браузера показывает проблему - междоменные запросы не выполняютсяПереконфигурировал сервер для разрешения CORS с https://translate.googleusercontent.com, и все это работает как положено (с относительными URL).Web.xml для tomcat:

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
  <init-param>
    <param-name>cors.allowed.origins</param-name>
    <param-value>https://translate.googleusercontent.com</param-value>
  </init-param>  
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>
...