---
title: "[object Error] i IE - fx tolkar rätt"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/163584-object-error-i-ie-fx-tolkar-rätt"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "wally_91"
published: "2007-08-18T12:24:07.000Z"
updated: "2007-08-25T19:25:08.000Z"
replies: 11
views: 1695
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/163584-object-error-i-ie-fx-tolkar-rätt"
---

# [object Error] i IE - fx tolkar rätt

## #1 — wally_91, 2007-08-18T12:24Z

Hej alla!

Jag har ett problem med IE. I forum.js har jag en koll som kollar om det sista inlägget (last_post) matchar det senaste inlägget i databasen (lastpost). Om lastpost är större än last_post betyder det att det finns nya inlägg och handleServerResponse() kallas. Detta är markerat i **fet**.

I fx funkar detta perfekt (ej kollat opera) men i IE så får jag bara felet

> Error reading the response: \[object Error\]

 
Jag vet att fx och IE tolkar XML-svar olika men hur ska jag lösa detta?
Länk för dem som vill titta hur det ser ut:
<https://www.guida.nu/nytt/visa_alla/> och klicka på test-thread.

forum.js

```
/* Adressen till XML-dokumentet där vi hämtar inläggen */
//var adress = "http://www.guida.nu/nytt/visa_alla/ajax.php?threadID=";
//var bild_url = "http://www.guida.nu/nytt/visa_alla/";
var bild_url = "";
var adress = "ajax.php?threadID=";

var xmlResponse2, xmlRoot2;
var lastpost;
var notify = document.getElementById("notify");
/* the XMLHTTP object för att samarbeta med servern */
var xmlHttp = createXmlHttpRequestObject();

function createXmlHttpRequestObject()
{
//Håller XMLHTTPRequest object
var xmlHttp;
try
{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
//anta IE6 eller äldre
var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP");

//prova varje XmlHttp version tills en funkar
for (var i = 0; i<XmlHttpVersions.length && !xmlHttp; i++)
{
try
{
//Försök skapa en XMLHttpRequest object
xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
}
catch (e){}
}
}
//returnera det skapade objektet eller visa felmeddelande
if(!xmlHttp)
alert("Error creating the XMLHttpRequest object");
else
return xmlHttp;
}

function getnewposts(threadID){

if(xmlHttp)
{
try
{
 xmlHttp.open("GET", adress + encodeURIComponent(threadID) + "&newpost=" + encodeURIComponent(last_post));
xmlHttp.onreadystatechange = handleRequestStatusChange;  //Hantera svar
xmlHttp.send(null); //skicka inget
}
catch(e){}
}
}

function handleRequestStatusChange(){
 var target = document.getElementById("ajax_forum_start");
// var loader = document.getElementById("ajax_loader");
 var notify = document.getElementById("notify");
if(xmlHttp.readyState == 4)
{
notify.innerHTML = '';
//loader.innerHTML = '';
if(xmlHttp.status == 200 )
{
[B]xmlResponse2 = xmlHttp.responseXML;
xmlRoot2 = xmlResponse2.documentElement;
//rada upp... allt

//forumsdata
lastpostArray = xmlRoot2.getElementsByTagName("lastpost");
lastpost = lastpostArray.item(0).firstChild.data;
	if(lastpost > last_post){
		try
		{
		handleServerResponse();
		}
		catch(e)
		{
		alert("Error reading the response: " + e.toString());
		}[/B]
	}else if(lastpost == last_post){
        notify.innerHTML = "Inga nya inlägg!";
        
		}
}
	else
	alert("Error fetching the data:\n" + xmlHttp.statusText + "\n" + xmlHttp.status);
}
/*else if(xmlHttp.readyState == 1 || xmlHttp.readyState == 2 || xmlHttp.readyState == 3)
{
	loader.innerHTML = "<img src=\"" + bild_url + "images/load2.gif\" alt=\"Laddar\" style=\"border:none;\">";
}
*/

}

function handleServerResponse(){
/* [...] */

//Gör så att det senaste inlägget är last_post
last_post = lastpost;
}
```

Index.php

```
<script type="text/javascript" language="JavaScript">last_post = 5; //skrivs ut m.h.a. .$last_posts['postid']. (PHP)</script>
```

Permalänk: https://www.webforum.nu/p/163584

## #2 — wally_91, 2007-08-19T09:55Z

\*bump\*

Permalänk: https://www.webforum.nu/p/2018150

## #3 — wally_91, 2007-08-21T14:47Z

\*bump\*

Permalänk: https://www.webforum.nu/p/2018666

## #4 — Peter S, 2007-08-21T18:13Z

Vad får du med 

```
catch(e){ alert(e.name + " / " + e.message); }
```

?

Permalänk: https://www.webforum.nu/p/2018714

## #5 — wally_91, 2007-08-22T17:11Z

Hmm. Var ska jag lägga till det?

Permalänk: https://www.webforum.nu/p/2019002

## #6 — Peter S, 2007-08-22T17:18Z

I stället för ditt nuvarande catchuttryck i det fetstilta. :)

Permalänk: https://www.webforum.nu/p/2019003

## #7 — wally_91, 2007-08-22T17:35Z

Då får jag

> TypeError / Object krävs

Permalänk: https://www.webforum.nu/p/2019007

## #8 — Peter S, 2007-08-22T17:44Z

Lägg in alert()s på 

```
var xmlResponse = xmlHttp.responseXML;
var xmlRoot = xmlResponse.documentElement;
```

...och se om de innehåller det du vill.

Permalänk: https://www.webforum.nu/p/2019009

## #9 — wally_91, 2007-08-22T18:00Z

Nu får jag

> \[object\]
> 
> \[object\]

Permalänk: https://www.webforum.nu/p/2019012

## #10 — coder, 2007-08-24T23:30Z

Vilken webbsida och vad ska jag göra för att få fram det fel du får?

Rent allmänt är den här typen av konstruktioner ganska farliga

```
lastpostArray = xmlRoot2.getElementsByTagName("lastpost");
lastpost = lastpostArray.item(0).firstChild.data;
	if(lastpost > last_post)

...
```

Jag skulle gå fram lite mer försiktigt med if-satser och felmeddelanden åtminståne i en debugversion och kontrollera att objekten finns överhuvudtaget innan jag börjar kräva data från objektet.

Permalänk: https://www.webforum.nu/p/2019553

## #11 — wally_91, 2007-08-25T10:13Z

Länk: <https://www.guida.nu/nytt/visa_alla/> och tryck på "test thread".

För mig så har det inte funkat med någon version av IE.

Nu funkar dessutom inte en väldigt enkel AJAX funktion som funkar i fx.

```
function addpost(postid){
if(!xmlHttp)
alert("No XMLHttpRequest object created! Please update to a more modern browser like firefox.\n You can get it at www.getfirefox.com");
else{
	xmlHttp.open("GET", "makepost.php?threadID=" + encodeURIComponent(postid));
	xmlHttp.onreadystatechange = handlemakenewpost;
	xmlHttp.send(null);
	}
}

function handlemakenewpost(){
	if(xmlHttp.readyState == 4){
		if(xmlHttp.status == 200){
		    if(xmlHttp.responseText == "Ok")
			alert("Ditt inlägg skapades!\nProva nu att hämta nya inlägg. Det gör du längst ner!");
		    else
		    alert("Fel");
		}else
		alert("Something got wrong!\n" + xmlHttp.statusText);
	}
}
```

> **coder skrev:**
>
> Rent allmänt är den här typen av konstruktioner ganska farliga

Varför då och hur ska jag göra det säkrare? Några typeof-kollar?

Permalänk: https://www.webforum.nu/p/2019604

## #12 — coder, 2007-08-25T19:25Z

> **wally_91 skrev:**
>
> Länk: <https://www.guida.nu/nytt/visa_alla/> och tryck på "test thread".
> För mig så har det inte funkat med någon version av IE.

Det fel jag får där är "Rad 40, tecken 2, identifierare, sträng eller tal förväntas". 

> **wally_91 skrev:**
>
> **Varför då**  och hur ska jag göra det säkrare? Några typeof-kollar?

Därför att man lätt råkar ut för det du råkat ut för. :)

```
if (xmlRoot2)
{
  lastpostArray = xmlRoot2.getElementsByTagName("lastpost");
  if (lastpostArray)
  {
    lastpost = lastpostArray.item(0).firstChild.data;
  }
  else
  {
    alert("lastpostArray finns inte")
  }
}
else
{
  alert("xmlRoot2 finns inte")
}
```

Typ, sådär ungefär. Övertydligt. Återkoppling är A och O för att snabbt begripa vad som inte fungerar. Sen kan man ju alltid plocka bort detta senare.

Edit: Nu tror jag att felet ligger i funktionen handleServerResponse() så det är nog den du ska koncentrera dig på. Där någonstans använder du objekt som inte existerar.

Permalänk: https://www.webforum.nu/p/2019701

---

Tråden på webben: https://www.webforum.nu/amne/javascript/163584-object-error-i-ie-fx-tolkar-rätt
