Avatar billede slughead Nybegynder
22. oktober 2008 - 15:10 Der er 10 kommentarer

ajax opslag giver problemer i firefox med danske bogstaver

Hey,

Jeg laver diverse opslag via et xmlhttpobject.

function GetXmlHttpObject()
{
  var xmlHttp=null;
  try
  {
    //firefox, safari eller opera 8.0+
    xmlHttp=new XMLHttpRequest();
  }
  catch (e)
  {
    //internet explorer
    try
    {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  return xmlHttp;
}

Så benytter jeg objektet på følgende måde:

xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
  alert("your browser does not support AJAX!");
  return;
}

...

xmlHttp.onreadystatechange = GetStateChanged;
xmlHttp.open("POST", url, true);
xmlHttp.send();

Her er et udpluk af metoden GetStateChanged

...
responseText = xmlHttp.responseText.split('|')M
...
if (responseText.length == 1 && xmlHttp.responseText == '')
{
  alert("fejl");
}

Alt dette fungerer sådan set fint, med en enkelt undtagelse. Som spørgsmål-titlen angiver, får jeg netop denne "fejl" ud, hvis min søgestreng indeholder æøå i Firefox. Jeg kan sagtens modtage svar indeholdende æøå. I Internet Explorer, kan jeg både requeste og modtage indeholdende æøå.

Det skal måske lige tilføjes, at jeg på siden har denne her under head:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

Jeg har læst nogen steder, at nogen kan få det til at virke i firefox, men ikke i internet explorer, hvor problemet er blevet løst ved at bruge "POST" i stedet for "GET" - men jeg bruger allerede "POST", og hvis jeg sætter den til at bruge "GET", fucker siden helt i Firefox... (kan ikke interagere med elementerne på siden).

Nogen bud? :)
Avatar billede slughead Nybegynder
22. oktober 2008 - 15:12 #1
M = ;  ...hvis nogen skulle være i tvivl!
Avatar billede jokkejensen Novice
22. oktober 2008 - 15:16 #2
gem i utf-8 - eller <![CDATA[æøå]]>

Du kan aflæse request og response med hhv firebug og fiddlertool til firefox og ie.

vh.
Avatar billede slughead Nybegynder
22. oktober 2008 - 15:23 #3
kan du udpensle det med lidt eksempel-gejl? :P
Avatar billede majbom Novice
22. oktober 2008 - 15:27 #4
har du en header på siden, som dit ajax-kald "snakker" med?
Avatar billede slughead Nybegynder
22. oktober 2008 - 15:44 #5
ah ja - Jeg har en asp-fil, der sætter den slags.

Jeg har netop forsøgt her at sætte Response.CharSet = "ISO-8859-1" i stedet for "UTF-8"

Det virker - til dels...
Jeg kan nu søge på strenge indeholdende æøå. Nu ser svaret bare skod ud, fordi svaret ikke vises som æøå, men som alle mulige andre tegn ^^

Jeg kan dog ikke rigtigt forstå hvorfor reponse-charset'et har noget at gøre med request'et?
Avatar billede mitbrugernavn Praktikant
22. oktober 2008 - 15:49 #6
jeg kører mine med følgende top:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<% Response.CacheControl = "no-cache" %>
<% Response.AddHeader "Pragma", "no-cache" %>
<% Response.Expires = -1 %>
<%Response.charset="iso-8859-1"%>
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Avatar billede olebole Juniormester
22. oktober 2008 - 16:42 #7
<ole>

"Jeg har læst nogen steder, at nogen kan få det til at virke i firefox, men ikke i internet explorer, hvor problemet er blevet løst ved at bruge "POST" i stedet for "GET" - men jeg bruger allerede "POST", og hvis jeg sætter den til at bruge "GET", fucker siden helt i Firefox... (kan ikke interagere med elementerne på siden)."

Det tyder på, du også laver andre fejl. Derudover er iso-8859-1 de facto deprecated, da JavaScript og JScript ikke længere tilbyder metoder til encoding af URL'er i ANSI.

Prøv at lægge et link til siden  =)

/mvh
</bole>
Avatar billede olebole Juniormester
22. oktober 2008 - 16:44 #8
PS: Vil du bruge utf-8, skal du skrive noget i stil med:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% Response.CacheControl = "no-cache" %>
<% Response.AddHeader "Pragma", "no-cache" %>
<% Response.Expires = -1 %>
<%Response.charset="utf-8"%>
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Avatar billede slughead Nybegynder
27. oktober 2008 - 11:42 #9
Jeg har nu prøvet ovenstående muligheder, uden held.

olebole - det er på et internt miljø, så den er ikke tilgængelig udefra - sry! :)
Avatar billede majbom Novice
04. november 2010 - 10:47 #10
kan vi lukke hér?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester