我已经在网上搜索了几天,我似乎找不到合适的解决方案。问题是我正在尝试从我的域上的另一个页面加载一些数据。此页面有charset ISO-8859-1。哪个UTF-8应该兼容。 我首先在Chrome中进行了测试,它运行良好,但是当我在FireFox中进行测试时,它无法与charset一起使用。 我正在将一些类别名称加载到列表中以在子菜单中使用。如图所示,只有子菜单才有问题。 http://imgur.com/OrtZ9DD
我用来加载内容的ajax代码在这里:
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>');
}
}
});
我试图使用charset传递标头的参数,但它不起作用。为什么ajax函数会删除charset以及如何修复它? 希望我提供了足够的信息。
答案 0 :(得分:3)
在提出问题后几个小时我找到了答案。这就是它一直有效的方式。当你放弃时,你可能非常接近答案。
无论如何..答案在这里找到: Convert ISO-8859-1 to UTF-8
这是有效的:
//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函数之前。