Exceptie Ajax.Request cu un URL extern

In javascript, pentru apelurile de Ajax.Request (de exemplu din libraria Prototype) cu un URL extern am obtinut execeptie si nu am stiu de ce.

Exista o politica numita “Same Origin Policy” care tine de securitate, astfel apelurie prin Ajax se pot face doar pentru url-urile de pe domeniul propriu. Binenteles ca exista si alternative care sa sara peste aceasta politica, chiar in documentatia de prototype.

Exemplu de cod cu exceptie:

<script type=”text/javascript”>

var postParams = { name: ‘bbb’, valoare: ‘ccc’};

request = new Ajax.Request(‘http://www.google.ro/un/exemplu/de/url/’, {
method: ‘post’, postBody: postParams,
onSuccess: function(response) { alert(‘OK ‘ + response.getResponseHeader());},
on404: function() { alert(‘404′);},
onFailure: function() { alert(‘eroare de Ajax’); },
onUninitialized: function() { alert(‘eroare de onUninitialized’); },
onLoading: function() { alert(‘eroare de onLoading’); },
onLoaded: function() { alert(‘eroare de onLoaded’); },
onInteractive: function() { alert(‘eroare de onInteractive’); },
onComplete: function() { alert(‘eroare de onComplete’); },
onException: function(req,exception) { alert(‘eroare de onException.’); document.getElementById(‘errConsole’).innerHTML = exception;}
});

</script>

Exceptia obtinuta a fost: “Permission denied to call method XMLHttpRequest.open“.

Pentru solutii la acesta problema puteti cauta termeni ca “cross domain ajax” sau sa cititi un articol din Ajaxian.
Sper sa va ajute si exemplul de mai sus, caci am cautat un pic mai mult o sintaxa la evenimentul onException.

Leave a Reply

Your email address will not be published. Required fields are marked *


*