2010-09-06 96 views
4

這是我的代碼,有時可用,有時不起作用。使用jQuery的簡單AJAX請求在IE上不起作用

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; 
}; 

好的。這是葡萄牙語,但我認爲你會得到一般圖片。有時候這是有效的,沒有問題,但有些時候(只在IE中,Firefox中沒有任何問題),它會在我的jquery.js文件(縮小)中拋出一個javascript錯誤。錯誤說明如下:

對象不支持此屬性或方法:jquerymin.js線123字符183 ..

即達...

{return new A.XMLHttpRequest} 

某處中間的jquery.js文件。它似乎是非常特定於IE的,因爲我在Firefox上沒有這樣的問題。 This guy顯然與我有同樣的問題,但沒有得到任何答覆。

有沒有其他人看到過這個?由於提前

P.S:我運行IE 8

+0

只是想知道你有使用微軟開發工具或類似工具s來監視客戶端和瀏覽器之間的AJAX通信?這可能是有幫助的 – 2010-09-06 05:09:01

+0

我ahev使用IE的JavaScript調試器,但就是這樣,我得到了我上面提到的錯誤信息...我也使用了螢火蟲,但在Firefox上它起到了魅力的作用。這個ajax顯示器是否帶有IE開發工具? – 2010-09-08 02:15:39

回答

0

這件事情做在您嘗試所有不同的順序爲了建立正確的XMLHTTP請求對象的類型的瀏覽器。我將在下面的頁面說明它的詳細信息:

AJAX inconsistency in IE 8?

1

您是否嘗試過使用一個完整的URL,而不是../模型...?例如:http://www.mysite.com/model/login_ajax.php

而且,也許嘗試使用jQuery的阿賈克斯方法修改「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(); 
     } 
    } 
    }); 
} 
+0

嗯我可以做到這一點,但如果是這個問題,我每次嘗試發送請求時都不會遇到這個問題嗎?瀏覽器只在有些場合尖叫,不是全部.. – 2010-09-06 03:58:10

+0

好點,讓我在這裏添加別的東西.. – taber 2010-09-06 04:17:46

+0

任何運氣瓦特/那? – taber 2010-09-07 02:17:48