Així doncs si la crida AJAX va cap a un recurs PHP que es trobi en un domini diferent es pot fer si modifiquem l'script PHP perquè retorni una capçalera "Access-Control-Allow-Origin" adequada:
header('Access-Control-Allow-Origin: http://domini_desdonhiha_el_javascript_amb_ajax.com');
o fins i tot per permetre qualsevol origen:
header('Access-Control-Allow-Origin: "*"');
D'altre banda si no es tracta d'un PHP o no ho podem modificar les capçaleres HTTP
per la raó que sigui, l'Apache es pot configurar mitjançant directiva o mitjançant un arxius .httacces per afegir-la, en aquest darrer cas la directiva podria ser:
header add Access-Control-Allow-Origin *
Cal tenir el mòdul "mod_headers" d'apache carregat perquè funcionin aquestes directives. En Debian/Ubuntu seria assegurant-nos que a "/etc/apache2/mods-enabled" existeix el headers.load ( i si no és així enllaçant-li des dels mods-available amb un "ln -s /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled/headers.load")
Un exemple d'afegir la capçaera mitjançant la directiva a l'arxiu de configuració seria afegir
Header set Access-Control-Allow-Origin "*" a l'arxiu de configuració del lloc web, per exemple dins de la secció que ens interessi. En aquest cas, per què Apache agafi els canvis de configuració caldria reiniciar-lo
sudo /etc/init.d/apache2 reload
Cap comentari:
Publica un comentari a l'entrada