jQuery AJAX cross domain
Aquí hay dos páginas, test.php y testserver.php.
test.php
<script src="scripts/jq.js" type="text/javascript"></script>
<script>
$(function() {
$.ajax({url:"testserver.php",
success:function() {
alert("Success");
},
error:function() {
alert("Error");
},
dataType:"json",
type:"get"
}
)})
</script>
testserver.php
<?php
$arr = array("element1",
"element2",
array("element31","element32"));
$arr['name'] = "response";
echo json_encode($arr);
?>
Ahora mi problema: cuando ambos archivos están en el mismo servidor (ya sea localhost o servidor web), funciona y se llama a alert("Success")
; si está en diferentes servidores, es decir testserver.php en el servidor web y test.php en localhost, no funciona, y se ejecuta `alert("Error". Incluso si la URL dentro de ajax se cambia a http://domain.com/path/to/file/testserver.php
467
3
Utilice [JSONP][1].
jQuery:
Tiene que echar un vistazo a la Política del mismo origen:
En informática, la política del mismo origen
Para que pueda obtener datos, tiene que ser:
El mismo protocolo y host
Tienes que implementar JSONP para solucionarlo.
La seguridad del navegador impide hacer una llamada ajax desde una página alojada en un dominio a otra alojada en un dominio diferente; esto se llama la "política del mismo origen]1".