Access Denied in een AJAX code

Status
Niet open voor verdere reacties.

Mark Straatman

Gebruiker
Lid geworden
23 mei 2007
Berichten
279
Goedenavond,

Ik ben samen met een vriend van me zijn site aan het bekijken of alles goed werkt.
De site werkt goed in Firefox en safari, maar in Iexplore begint ie te klagen (altijd weer die zeurende IE).
wat blijkt nou, in de javascript code die op de pagina's wordt gebruikt, wordt er een open en send method gebruikt, waarvan de open method de toegang geweigerd geeft.

ik denk dat het komt omdat de script die hij heeft gebruikt (we hebben beiden geen goeie kennis van ajax, dus de code is gecopypasted), voor een oudere versie is van IE, IE6 bvb, terwijl we nu al op de IE8 zitten.

de javascript code zit in een bijlage. welliswaar in txt formaat aangezien .js niet toegestaan is.
PHP:
// Documento JavaScript
// Esta funciÛn cargar· las paginas
function llamarasincrono(url, id_contenedor){
var pagina_requerida = false
if (window.XMLHttpRequest) 
	{
	pagina_requerida = new XMLHttpRequest() // Si es Mozilla, Safari etc
	} 
	else if (window.ActiveXObject)
		{ // pero si es IE
			try {
			pagina_requerida = new ActiveXObject("Msxml2.XMLHTTP")
			} 
			catch (e){ // en caso que sea una versiÛn antigua
			try{
			pagina_requerida = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){}
			}
		}
	else
	return false
	pagina_requerida.onreadystatechange=function(){ // funciÛn de respuesta
	cargarpagina(pagina_requerida, id_contenedor)
	}
	pagina_requerida.open('GET', url, true) // asignamos los mÈtodos open y send
	pagina_requerida.send(null)
}
// todo es correcto y ha llegado el momento de poner la informaciÛn requerida
// en su sitio en la pagina xhtml
function cargarpagina(pagina_requerida, id_contenedor){
if (pagina_requerida.readyState == 4 && (pagina_requerida.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(id_contenedor).innerHTML=pagina_requerida.responseText
}
hopelijk kunnen jullie me helpen ;)

alvast bedankt.
Met vriendelijke groet,
Mark Straatman

Mod: Je kunt gewoon de code hier plakken in plaats van een bijlage :)
 
Laatst bewerkt door een moderator:
Err, waarom nou weer spaans? :p

Anywho: dit werkt als het goed is in IE 6 en ouder. In welke IE heb je dit getest? Het kan zijn dat IE8 weer een of andere restrictie op httprequest heeft zitten, en daarom niet werkt. Als het in FF en SF wel werkt, lijkt me dat het meest logische. Kan je anders even een link naar een test pagina geven?
 
Misschien ook handig om de foutmelding te posten? Zo weten we op zijn minst wat het probleem is... Ik heb overigens nog nooit problemen gehad met een XHR in MSIE.
 
Heb je hier ondertussen een oplossing voor gevonden? Ik heb namelijk precies hetzelfde probleem.

Op andere sites heb ik wel wat suggesties gevonden...
- De website toestaan onder Privacy -> websites
- De website in de lijst vertrouwde websites zetten met Beveiliding -> Vertrouwde websites -> Websites
- Diverse instellingen onder Geavanceerd zoals "Software mag worden uitgevoerd, zelfs als de handtekening ongeldig is"

maar dat helpt allemaal niet, ik blijft diezelfde foutmelding krijgen: Toegang geweigerd, op de regel waar de "open" aanroep staat.

Heeft iemand dus nog meer hints?
 
Je kan geen XHR requests maken op je filesystem, i.e. als de URL file:///nogiets is. De oplossing hiervoor is om je pagina online te gooien op een server (desnoods een lokale server, dat is ook prima). Voor Windows kan je usbwebserver eens proberen, daar heb ik wel goede ervaringen mee. Op een Linux bakje kan je gewoon een webserver gooien (LAMP, nginx, etc.)

Een andere oplossing is om in Chrome de beveiliging uit te zetten. Dit doe je door een Chrome-snelkoppeling te maken, en dan rechtermuisknop, eigenschappen, en in het veld "doel" er --disable-web-security achter te gooien. Dus zoiets:

Code:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security

Let wel dat je dit niet altijd aan laat staan ;)

Op een linuxbakje kan je in een terminal chrome-browser --disable-web-security gebruiken (volgens mij; misschien is het chromium-browser).
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan