AJAX en DIV fout in IE

Status
Niet open voor verdere reacties.

Quirijn Verlaan

Gebruiker
Lid geworden
14 okt 2009
Berichten
15
Hallo Allen,

ik ben bezig met een site maken en gebruik daarbij DIV en AJAX. Om te zorgen dat de links geopend worden in een DIV, hiervoor gebruik ik de volgende AJAX code:

Code:
<script>
/***********************************************
* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
***********************************************/

var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
var loadedobjects=""
var rootdomain="http://"+window.location.hostname
var bustcacheparameter=""

function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
} 
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
if (bustcachevar) //if bust caching of external page
bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
page_request.open('GET', url+bustcacheparameter, true)
page_request.send(null)
}

function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
document.getElementById(containerid).innerHTML=page_request.responseText
}

function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments[i]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);
}
}
if (fileref!=""){
document.getElementsByTagName("head").item(0).appendChild(fileref)
loadedobjects+=file+" " //Remember this object as being already added to page
}
}
}

</script>

Alleen nu krijg ik als ik in IE een link aan klik een fout op deze regel:

page_request.open('GET', url+bustcacheparameter, true)

IE zegt dat de toegang geweigerd is, overigens werkt het wel in Chrome.

Als iemand mij kan helpen alvast bedankt.

Groeten

Quirijn
 
Ik denk dat het komt omdat je IE-settings verkeerd zijn voor die pagina. Ik geloof dat IE werkt met zone's, en de pagina dus niet in de 'goede' zone zit (lees: beveiliging houd het dus tegen).

Bij extra->opties en dan tabblad beveiliging staat het geloof ik.
You can enable cross-domain on IE by going into Internet Options -> Security Settings ->Custom level and enabling "Access data sources across domains".


:thumb:




ps. klik hier!
 
Voor IE moeten de xhtml en javascript moeten van een webserver gedownload worden voordat AJAX kan werken.

Die oplossing van Vegras wil je niet instellen, is onveilig om AJAX cross-domain in te stellen
 
Laatst bewerkt:
Raymond heeft gelijk,

nadat ik mijn site op de webserver heb gezet werkt het wel.

Bedankt mensen!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan