Javascript 为什么我的警告声明没有开火?

Javascript 为什么我的警告声明没有开火?,javascript,jquery,google-chrome,Javascript,Jquery,Google Chrome,在测试这段代码时,我特意将其设置为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 thi

在测试这段代码时,我特意将其设置为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);
    }

  });

更新:我刚刚意识到我无意中选中了一个框,该框询问您是否希望在出现此网页时继续接收来自该网页的警报。现在我不知道从何处撤消它。

可能是因为您在警报刚发出后执行重定向,并且它正在被禁止

您可以尝试替换此:

$("#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);

代码是有效的。要重置警报设置,我必须重新打开选项卡

您在浏览器控制台中是否有任何错误?您如何知道它到达else语句?提示:我将添加
.fail()
处理程序,以确保它正确执行
AJAX
调用。您没有选中“不显示此站点的警报”或类似的内容吗?如果您在服务器上测试此功能,是否确保代码已正确上载?提示2:此处多余的逗号可能会在
IE
数据类型:'text',
上打断您的代码,答案中的代码片段是等效的。