При тестировании этого кода я специально делаю так, чтобы текст, возвращаемый вызовом ajax, не был равен 1. Он достигает оператора else. Другие операторы выполняются, однако я никогда не вижу предупреждения.

  $.ajax ( {
    type: "GET",
    processData: false,
    url:  SITE_URL + "/system/check_user_project/" + session_id + "/" + cart_id + "/" + project_id + "/" + revision_id, //send data to this url
    dataType: 'text', 
  })
  .done (function(text) //When we have the data
  {
    if ("1" == text)
    {
      photos_populate_albums(session_id); //Call function to populate albums

      if (typeof(project_id) !== "undefined" && project_id > 0) //If we have a project
      {
        mattes_add_default_matte(null, null, null, null, SITE_URL + "/system/xml/export/" + project_id + "?rid=" + revision_id);
      }
      else //otherwise...
      {
        mattes_add_default_matte(); //Add the default matte
      }

      common_change_step(document.getElementById("step1")); //Set the step to 1
    }
    else
    {
      $("#content").empty();
      alert("Invalid project.");
      window.location.href = (SITE_URL + "/user/mystuff/projects/?pid=" + partner_id);
    }

  });

ОБНОВЛЕНИЕ: Я только что понял, что случайно установил флажок, который спрашивает, хотите ли вы продолжать получать оповещения с этой веб-страницы, когда она появится. Теперь я не знаю, где это отменить.

-2
AllisonC 8 Дек 2014 в 19:36
2
У вас есть ошибки в консоли браузера?
 – 
melancia
8 Дек 2014 в 19:38
1
Откуда вы знаете, что он достигает оператора else?
 – 
Brewal
8 Дек 2014 в 19:40
2
Совет: я бы добавил обработчик .fail() только для того, чтобы убедиться, что он правильно выполняет вызов AJAX.
 – 
melancia
8 Дек 2014 в 19:41
1
Разве вы не отметили «не показывать мне оповещения для этого сайта» или что-то в этом роде? Если вы тестируете это на сервере, убедитесь, что код загружен правильно?
 – 
Brewal
8 Дек 2014 в 19:43
1
Совет № 2. Дополнительная запятая может сломать ваш код на IE: dataType: 'text',
 – 
melancia
8 Дек 2014 в 19:44

2 ответа

Вероятно, это потому, что вы выполняете перенаправление сразу после предупреждения, и оно подавляется.

Вы можете попробовать заменить это:

$("#content").empty();
alert("Invalid project.");
window.location.href = (SITE_URL + "/user/mystuff/projects/?pid=" + partner_id);

Для чего-то вроде этого:

$("#content").empty();
if (alert("Invalid project.") || true)
    window.location.href = (SITE_URL + "/user/mystuff/projects/?pid=" + partner_id);
-1
Igor 8 Дек 2014 в 19:50
Фрагменты в вашем ответе эквивалентны.
 – 
Rob W
8 Дек 2014 в 19:50

Код работает. Чтобы сбросить настройку оповещения, мне пришлось снова открыть вкладку.

0
AllisonC 8 Дек 2014 в 19:50