代码之家  ›  专栏  ›  技术社区  ›  Felipe

使用jQuery的简单AJAX请求不适用于IE

  •  4
  • Felipe  · 技术社区  · 16 年前

    这是我的代码,有时有效有时无效。

    var resolve_ajax_login=function(){
      $.ajaxSetup({cache:false });
      var loginvar=$("#inputlogin").attr("value");
      var senhavar=$("#inputsenha").attr("value");
      $.post("../model/php/login_ajax.php",
            {login:loginvar, senha:senhavar},
            function(responseText){
                if (responseText=="ok"){ 
                    window.location="areatrab.php";
    
                }else{
                    $("#inputlogin").attr("value","");
                    $("#inputsenha").attr("value","");
                    $("#divmensagem").html("<span style='color:red;font-size:70%;'>"+responseText+"</span>");
    
                }
            }
      );
      return false;
    };
    

    相当于。。。

    {return new A.XMLHttpRequest}
    

    在城市的中央某处jquery.js文件文件。这似乎是非常具体的IE,因为我在Firefox上没有这样的问题。 This guy

    有其他人见过这个吗?提前谢谢

    附言:我跑IE 8

    2 回复  |  直到 16 年前
        1
  •  1
  •   taber    16 年前

    您是否尝试过使用完整的URL而不是../model。。。?例如: http://www.mysite.com/model/login_ajax.php

    另外,可以尝试使用jQuery的.ajax方法修改“xhr”属性。。。比如:

    
    var loginvar = $("#inputlogin").val();
    var senhavar = $("#inputsenha").val();
    var ajax_obj = null;
    
    var resolve_ajax_login = function() {
      if(ajax_obj !== null) {
        try {
          ajax_obj.abort();
        } catch(e) {
        }
      }
    
      ajax_obj = $.ajax({
        type: 'POST',
        cache: false,
        url: '../model/php/login_ajax.php',
        data: {login:loginvar, senha:senhavar},
        dataType: 'text',
        timeout: 7000,
        success: function(data)
        {
          if(response == 'ok') {
            alert("right on!");
          } else {
            alert("not ok");
            return;
          }
        },
        error: function(req, reqStatus, reqError)
        {
          alert("error");
          return;
        },
        'xhr': function() {
          if(ajax_obj !== null) {
            return ajax_obj;
          }
    
          if($.browser.msie && $.browser.version.substr(0,1) <= 7) {
            return new ActiveXObject("Microsoft.XMLHTTP");
          } else {
            return new XMLHttpRequest();
          }
        }
      });
    }