2011-08-26 19 views
16
$.ajax({ 
    type : "GET", 
    dataType : "jsonp", 
    url : '/', 
    data : {} 
    success: function(obj){ 

    } 
}); 

¿Cómo puedo usar $ .ajax dataType: jsonp cross-domain para publicar datos?

+1

Ya que no está indicando qué tipo de error que está encontrando yo sólo puede apuntar a esto: http://api.jquery.com/jQuery.getJSON/ que debe hacer lo que quiera - pero de nuevo, es sólo una forma abreviada de lo que has escrito. – m90

+0

publicar datos ?? ¿Puedes decir ... – Baz1nga

+0

Ver los documentos: http://api.jquery.com/jQuery.getJSON/ Necesitas especificar una función de devolución de llamada en tu url. –

Respuesta

3

No es posible con jsonp simple. Leer this

+0

gracias ~ debo ser necesario que los documentos. – Thinking80s

+0

@kevin editado con el enlace – genesis

+2

¿No está seguro de cómo esto ayuda? no proporciona una solución, solo dice que no puedes hacerlo. – dewd

38

Para responder a su pregunta en lugar de enviarle a otro enlace como la de arriba:

El JS:

$.ajax({ 
    type : "GET", 
    dataType : "jsonp", 
    url : "http://domainname.com/json.php?callback=?", // ?callback=? 
    success: function(data){ 
      // do stuff with data 
    } 
}); 

El PHP podría tener este aspecto:

<?php 
include('connect.php'); 
$sql = "SELECT id, name, items FROM tablename ORDER BY id ASC"; 
$result = mysql_query($sql); 
while($row = mysql_fetch_array($result)) 
{ 
    $rows[] = array(
      "id" => $row['id'], 
      "name" => $row['name'], 
      "items" => $row['items']); 
} 
$json = json_encode($rows); 
$callback = $_GET['callback']; 
echo $callback.'('. $json . ')'; 
?> 

Ajuste de la dataType a jsonp permitirá jQuery para añadir automáticamente un extra ?callback=? hasta el final de su url para especificar la devolución de llamada. Si especifica el suyo como se indica arriba, usará el nombre callback que está aprobando. Si necesita especificar un nombre de devolución de llamada json, use la propiedad jsonpCallback. O puede agregar como parámetro a la propiedad de datos. Si necesita más información, visite jQuery API Ajax: http://api.jquery.com/jQuery.ajax/.

No se olvide de añadir el ; en la cadena de resultado.

Espero que esto ayude!

+3

¡Muchas gracias! Después de ver una docena de ejemplos, ¡finalmente consiguió mi código funcionando! – sahithya

Cuestiones relacionadas