Подтвердить что ты не робот

Jquery $.ajax jsonp

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

    }
});

Как я могу использовать $.ajax dataType: jsonp cross-domain для отправки данных?

4b9b3361

Ответ 1

Это невозможно с помощью простого jsonp. Прочитайте this

Ответ 2

Чтобы ответить на свой вопрос, вместо отправки вам другой ссылки, как указано выше:

JS:

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

PHP может выглядеть примерно так:

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

Установка dataType в jsonp позволит jQuery автоматически добавить дополнительный ?callback=? в конец вашего url, чтобы указать обратный вызов. Если вы укажете свой собственный, как указано выше, он будет использовать имя callback, которое вы передаете. Если вам нужно указать имя обратного вызова json, используйте свойство jsonpCallback. Или вы можете добавить как параметр в свойство данных. Если вам нужна дополнительная информация, посетите jQuery API Ajax: http://api.jquery.com/jQuery.ajax/.

Не забудьте добавить ; в строку результатов.

Надеюсь, это поможет!