[英]Simple AJAX request using jQuery not working on 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上沒有這樣的問題。 這家伙顯然遇到了和我一樣的問題,但還沒有回復。
有沒有人見過這個? 提前致謝
PS:我運行IE 8
您是否嘗試使用完整的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();
}
}
});
}
這與您嘗試所有不同類型的瀏覽器的順序有關,以便創建正確類型的XMLHTTP REQUEST對象。我將在下面的頁面中更詳細地解釋它:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.