JQuery Ajax не отправляет в Safari - PullRequest
0 голосов
/ 12 ноября 2018

Я работаю над проектом, в котором часть DOM определяется после запроса jQuery AJAX.Код отлично работает в Google Chrome, Mozilla Firefox и даже Edge.Проблема возникает со всеми (насколько я вижу) современной версией Safari.

Похоже, что запрос в Safari вообще не выполняется - но он не выдает никаких ошибок, поэтому другой JavaScript настраница (которая не включает запросы POST / GET) работает как задумано.В консоли также нет ошибок.

Вот код, который я использую для выполнения одного из запросов:

$(document).ready(function(){
   $.ajax({
      type: 'POST',
      url: '/include/userbar.php',
      async: false,
   }).done(function(data){
      if(data.replace('Invalid Permissions') == data){
         $('#userBarContain').html(data);
      } else {
         $.ajax({
            type: 'POST',
            url: '/include/guestbar.php',
            async: false
         }).done(function(data){
            $('#userBarContain').html(data);
         });
       }
});

По сути, мы делаем AJAXзапрос на $(document).ready(), и если возвращенные данные являются ошибкой Invalid Permissions, мы делаем второй запрос на guestbar.php.Независимо от того, куда мы отправляем сообщения, мы помещаем данные, возвращенные в элемент $('#userBarContain') DOM.

В Safari я не вижу ни успешных, ни резервных данных, вставляемых в DOM.Я читал, что Safari не всегда хорошо работает с async запросами, но даже с async: false я вижу те же проблемы.

РЕДАКТИРОВАТЬ: После получения доступа к современнымMacbook, я обнаружил, что на самом деле это был селектор CSS3, который я использовал в другом месте, который вызывал эту проблему (без ошибок в консоли, если я не вызвал функцию снова вручную).Я хотел обновить это для будущих поисков Google, которые также могут столкнуться с этой проблемой.

Селектор был $('*[name^="option["').Судя по всему, Safari плохо работает с этим селектором.После добавления класса к объекту (ам), который мне нужно было перебрать, проблема, похоже, решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...