Jquery 加载的内容在Ajax.load()之后会丢失字符集(UTF-8),但仅在FireFox和IE中使用。Chrome和Opera可以正常工作
我在网上搜索了好几天,似乎找不到有效的解决办法。问题是我试图从我的域的另一个页面加载一些数据。此页面具有字符集ISO-8859-1。哪个UTF-8应该与兼容。 我先在Chrome上测试过,效果很好,但当我在FireFox上测试时,它不适用于字符集。 我正在将一些类别名称加载到列表中,以便在子菜单中使用。如图所示,只有子菜单有问题。 我用来加载内容的ajax代码如下:Jquery 加载的内容在Ajax.load()之后会丢失字符集(UTF-8),但仅在FireFox和IE中使用。Chrome和Opera可以正常工作,jquery,ajax,google-chrome,firefox,character-encoding,Jquery,Ajax,Google Chrome,Firefox,Character Encoding,我在网上搜索了好几天,似乎找不到有效的解决办法。问题是我试图从我的域的另一个页面加载一些数据。此页面具有字符集ISO-8859-1。哪个UTF-8应该与兼容。 我先在Chrome上测试过,效果很好,但当我在FireFox上测试时,它不适用于字符集。 我正在将一些类别名称加载到列表中,以便在子菜单中使用。如图所示,只有子菜单有问题。 我用来加载内容的ajax代码如下: var catz = subCats[i].url + " .productSubCategorys a"; var fordi
var catz = subCats[i].url + " .productSubCategorys a";
var fordiv = '#ghostDiv' + i;
//This next line is the function
$(fordiv).load(catz, {contentType: "application/x-www-form-urlencoded;charset=UTF-8"}, function(){
var fordiva = fordiv + " a";
$(fordiva).removeClass("SubCats_Prodlink");
var arraydims = $(fordiva);
var d = '.0c' + i;
if(arraydims.length != 0){
var di = '#dcu' + i;
$(d).append('<ul class="dc' + i + ' sub-level" id="dcu' + i + '"></ul>');
$(di).append('<div id="sscont' + i + '"></div>');
for(var index = 0; index < arraydims.length;index++){
var dc = '#sscont' + i; //'.dc' + i;
$(dc).append('<li><a href="' + arraydims[index] + '">' + decodeURIComponent(encodeURIComponent(arraydims[index].text)) + '</a></li>');
}
}
});
var catz=subCats[i].url+“.productsubcategoris a”;
var fordiv='#ghostDiv'+i;
//下一行是函数
$(fordiv).load(catz,{contentType:“application/x-www-form-urlencoded;charset=UTF-8”},function(){
var fordiva=fordiv+“a”;
$(fordiva).removeClass(“子类Prodlink”);
var arraydims=$(fordiva);
变量d='.0c'+i;
如果(arraydims.length!=0){
var di='#dcu'+i;
$(d).追加(“
”);
$(di).附加(“”);
对于(变量索引=0;索引”);
}
}
});
我曾尝试用字符集传递标头的参数,但它不起作用。为什么ajax函数会删除字符集?我如何修复它?
希望我提供了足够的信息。我在提出问题几小时后就找到了答案。这就是它一直工作的方式。当你放弃时,你可能离答案很近 无论如何。。答案就在这里: 有效的方法是:
//This setup makes sure that the header is correct
$.ajaxSetup({
contentType: 'Content-type: text/plain; charset=iso-8859-1',
// This is the imporant part!!!
beforeSend: function(jqXHR) {
jqXHR.overrideMimeType('text/html;charset=iso-8859-1');
}
});
放在.load函数前面