仅在IE8上运行jQuery应用程序时出现异常。
我在网页执行开始时收到错误“Array.prototype.slice不是Javascript对象”。
我试图获得有关该对象的更多信息,我从debbuger得到它是一个对象DispHTMLWindow2。
然后我试图在代码上为jQuery的所有调用创建断点,并在jquery ajax调用中获得相同类型的对象。我试图修复它但没有成功。
function ajax(uri, method, data, username, password) {
var request = {
url: uri,
type: method,
contentType: "application/json",
accepts: "application/json",
cache: false,
dataType: 'json',
data: JSON.stringify(data),
beforeSend: function (xhr) {
xhr.setRequestHeader("Authorization",
"Basic " + encodeForIE9(username + ":" + password));
},
error: function(jqXHR) {
console.log("ajax error " + jqXHR.status);
}
};
return $.ajax(request);
}
encodeForIE9是IE8和IE9的函数,用于在base64中编码ajax请求。
function encodeForIE9(){
if (!window.btoa) {
window.btoa = function(mensaje) {
return Base64.encode(mensaje);
}
}
}
有关如何解决此错误的想法吗?