Usted CANNOT hacer un pedido de varios dominios (GET/POST/etc) con un XMLHttpRequest (también conocido como AJAX).
Lo que puede hacer, cuando el servidor lo admite, es realizar una solicitud JSONP. Una solicitud JSONP funciona de la siguiente manera:
- jQuery crea una función de acceso global de la función de devolución de llamada que usted proporciona como un argumento
- En lugar de utilizar XMLHttpRequest (AJAX) para hacer la petición HTTP, jQuery inserta de forma dinámica un guión etiqueta en el DOM
- el SRC de la etiqueta script es el URL de la solicitud a la que está tratando de comunicarse
- jQuery añade un parámetro de devolución de llamada a la cadena de consulta de este modo: example.com/someurl.js?callback=someDynamicallyGeneratedMethodName
- Está entonces arriba al servidor de JavaScript que su cliente puede utilizar al pasar el resultado JSON como un argumento a someDynamicallyGeneratedMethodName
Si usted no tiene control del servidor que envías para volver, entonces usted está fuera de suerte, JSONP ganó Te haces mucho bien. Cualquier cosa que devuelva el servidor estará en una etiqueta SCRIPT, y probablemente lanzará un error si no está formateada correctamente.
Para obtener más información al respecto, le sugiero que consulte la función base $ .ajax en lugar de los accesos directos. (En la documentación de jQuery bajo Ajax. Lo siento, no puedo publicar más enlaces)
Nuevamente, si no tiene control del servidor al que está publicando, es posible que desee consultar un proxy si es posible. De lo contrario, un IFRAME puede ser su única otra opción. También hay un método para lograr esto con un objeto SWF (flash). No lo he intentado, pero son soluciones a las limitaciones del objeto XMLHttpRequest.
Espero que pueda ayudar!
+1. ¡Excelente publicación y bienvenido a SO! – aolde
Gracias por la explicación. Es mucho más claro después de eso que una hora de Google. Tengo acceso al servidor en el que estoy publicando, así que todo está bien. –
Err, ¿cómo se relaciona este comentario con el tema? ¡No cubre el POST que el AT específicamente está pidiendo! – HRJ