我在Object的原型链上定义了如下方法用于获取xml节点的文本
Object.prototype.xmlText = function(){
console.log('执行了这里');
try{
return new XMLSerializer().serializeToString($(this)[0]);
}catch(e){
return '';
}
}
然后定义了如下方法用于加载一个xml文件的节点对象
function fn_load_xml_debug(_url){
var ret = {};
$.ajax(
{
type: "get",
url:_url,
async: false,
dataType: "xml",
success: function(xml) {
console.log('成功');
ret = xml;
},
error:function(e){
console.log(JSON.stringify(e));
}
});
return ret.documentElement;
}
这时问题来了,我在调用fn_load_xml_debug('xml/test.xml')方法后,ajax请求直接报错了,如下,并且在调用该方法时会自动执行我在原型链上定义的方法,我把在原型链上定义的方法删除了就可以成功加载xml了,这是怎么回事啊?
{"readyState":0,"status":0,"statusText":"TypeError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': String contains non ISO-8859-1 code point."}