这是我的代码,有时有效,有时无效。
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错误(缩小)。错误描述如下:
Object不支持此属性或方法:jquerymin.js第123行字符183 ..
相当于......
{return new A.XMLHttpRequest}
位于jquery.js文件中间的某个地方。它似乎非常特定于IE,因为我在Firefox上没有这样的问题。 This guy显然遇到了与我相同的问题,但尚未得到任何答复。
有没有人见过这个?在此先感谢
P.S。:我运行IE 8
答案 0 :(得分:1)
您是否尝试使用完整的网址而不是../模型...?例如: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();
}
}
});
}
答案 1 :(得分:0)
这与您尝试所有不同类型的浏览器的顺序有关,以便创建正确类型的XMLHTTP REQUEST对象。我将在下一页中更详细地解释它: