私は jquery と ASP を使用しており、関数 $.getJSON() を使用して、「acentos」と「tildes」を使用したスペイン語の説明 (á、é、í、ó、ú、ñ) を取得する SQL データベースを持っていますなど)。
Chrome 4 と FireFox では問題なく動作しています。問題は IE8 にあります。特定のクエリで、結果を返さずにハングします。IEを使用してすべての「ó」を「o」に置き換えると、同じ結果セットが完全に機能するため、問題は「acentos」(ó)にあることがわかります。
このコードでajax呼び出しを設定しています:
$.ajaxSetup({'beforeSend' : function(xhr) {
if (xhr.overrideMimeType) {
//FF & Chrome
xhr.overrideMimeType('text/html; charset=iso-8859-1');
}else {
//IE8
//I tried everything here:
//xhr = new ActiveXObject("Microsoft.XMLHTTP");
//var obj = new ActiveXObject("MSXML2.XMLHTTP.3.0");
//xhr = new ActiveXObject("Msxml2.XMLHTTP");
//and get ERROR with IE8 in this line:
xhr.setRequestHeader('Content-type', 'text/html; charset=iso-8859-1');
}
}
});
そして、「acentos」で説明を取得するための getJSON() の呼び出しは次のようになります。
function showDialog(idCriterio, codAplica, descTema){
$("#dialog-modal").html("Buscando Datos...");//getting data...
$.getJSON("generarJSONTipos.asp", { idCriterio: idCriterio, codAplica: codAplica},
//callback function
function(data){
var textoDialogo;
textoDialogo= "";
$("#dialog-modal").html("<span class='tituloOpcion'>"+descTema+"</span><br><br>");
for(i=0;i<data.length;i++) {
//tomo el html actual
textoDialogo = $("#dialog-modal").html();
//le apendo la descripcion del elemento del array
$("#dialog-modal").html(textoDialogo + data[i].descripcion + "<br>");
}//end for
}//end callback
);//end getJSON
$("#dialog-modal").dialog({
height: 300,
width:450,
modal: true
});
$("#dialog-modal").dialog('open');
}
どんなヒントも高く評価されます。この質問への答えにたどり着くことなく、私は何日もグーグルで検索しました... :P
前もって感謝します, イグナシオ (ラプラタ, アルゼンチン)