Hay varios temas sobre el problema con AJAX entre dominios. Los he estado buscando y la conclusión parece ser la siguiente:POST ajax de dominio cruzado en cromo
Además de usar algo como JSONP, o una solución de proxy, no debería poder hacer un jquery básico $ .post() a otro dominio
:Mi código de prueba es como la siguiente (que se ejecuta en "http://myTestdomain.tld/path/file.html")
var myData = {datum1 : "datum", datum2: "datum"} $.post("http://External-Ip:port", myData,function(return){alert(return);});
Cuando probé esto (la razón por la que empecé a buscar), cromo-consola me dijo
XMLHttpRequest no se puede cargar . Origen http://myTestdomain.tld no está permitido por Access-Control-Allow-Origin.
Ahora bien, esto es, por lo que puedo decir, esperado. No debería ser capaz de hacer esto. El problema es que el POST en realidad SI viene a través. Tengo un script simple en ejecución que guarda el $_POST
en un archivo, y está claro que la publicación se abre. Los datos reales que devuelvo no se entregan a mi secuencia de comandos de llamada, lo que de nuevo parece esperado debido al problema de control de acceso. Pero el hecho de que el mensaje realmente llegó al servidor me confundió.
- ¿Es cierto que supongo que el código de seguridad que se ejecuta en "myTestdomain" no debería ser capaz de hacer un simple
$.post()
al otro dominio (Externo-IP)? - ¿Se espera que la solicitud realmente llegue al script de la IP externa, aunque no se reciba la salida? o es esto un error. (Estoy usando Chrome 11.0.696.60)
Esto significa que protege contra (algunos) exploits XSS, pero no CSRF? Me parece extraño de todos modos: P – markijbema
Me retracto de mi comentario según la respuesta de Michiels, en realidad tiene sentido en cuanto a la seguridad. – markijbema
puede probar esto [EXTENSIÓN DEL CROMO] (https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=es) – kplshrm7