Anterior, solicitările ajax de tip cross-domain au fost imposibile, cu excepția solicitărilor în jsonp. Astăzi, odată cu apariția tehnologiei CORS, puteți implementa o interogare ajax inter-domeniu, inclusiv suport complet pentru obiectul XMLHttpRequest.
Browserele vă permit să faceți acest lucru utilizând protocolul de partajare a resurselor de origine încrucișată sau CORS
CORS presupune trimiterea obligatorie a antetului de cerere către server.
Serverul ar trebui să returneze următorul răspuns
Browserul va verifica cererea și, dacă va reuși, verificarea va returna obiectul pentru muncă sau va eșua.
CORS acceptă cererile POST și GET. Alte tipuri nu sunt acceptate de toate browserele.
Firefox 3.5+, Safari 4+ și Chrome sprijini alte tipuri de cereri, în timp ce IE 8 nu suportă alte tipuri de solicitări.
Dacă avem nevoie, de exemplu, de o interogare de tip DELETE, trebuie să trimitem o solicitare cu următoarele antete:
Ca răspuns, trimiteți următoarele antete de răspuns:
O "pre-interogare" a serverului vă permite să efectuați solicitări încrucișate ulterioare în timpul perioadei specificate în antetul de răspuns al Access-Control-Max-Age.
Un exemplu practic de ajax
Ca răspuns, serverul trebuie să returneze antetul
Acum este puțin probabil ca majoritatea oamenilor să folosească acest cod standard. Este mai ușor să faceți acest lucru pe jQUuery, deoarece în jQuery 1.5:
Pentru acest exemplu, puteți utiliza următorul cod php:
Toate metodele de utilizare a unui ajax de tip cross-domain:
- postMessage
- JSONP
- CORS
- document.domain methods
- window.name Transport
- Proxy server-side
- CRAZY IFRAME STUFF
- bliț