16 Stimmen

jquery $.ajax jsonp

$.ajax({
    type : "GET",
    dataType : "jsonp",
    url : '/',
    data : {}
    success: function(obj){

    }
});

Wie kann ich $.ajax dataType: jsonp Cross-Domain verwenden, um Daten zu posten?

38voto

Jonathan Marzullo Punkte 6679

Um Ihre Frage zu beantworten, anstatt Sie zu einem anderen Link wie oben zu schicken:

En JS :

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

En PHP könnte möglicherweise so aussehen:

<?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 . ')';
?>

Einstellung der dataType a jsonp ermöglicht es jQuery, automatisch eine zusätzliche ?callback=? an das Ende Ihrer url um den Rückruf anzugeben. Wenn Sie Ihren eigenen wie oben angeben, wird der callback Name, den Sie weitergeben. Wenn Sie einen Json-Callback-Namen angeben müssen, verwenden Sie die jsonpCallback Eigentum. Oder Sie können sie als Parameter zur Eigenschaft data hinzufügen. Wenn Sie weitere Informationen benötigen, besuchen Sie bitte die jQuery API Ajax: http://api.jquery.com/jQuery.ajax/ .

Vergessen Sie nicht, die ; auf die Ergebniszeichenkette.

Ich hoffe, das hilft!

3voto

genesis Punkte 49257

Mit einfachem jsonp ist das nicht möglich. Lesen este

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X