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

    } 
}); 

Jak mogę użyć danych $ .ajax dataType: jsonp między domenami do publikowania danych?

+1

Ponieważ nie stwierdzasz, jakiego rodzaju błąd napotykasz, mogę po prostu wskazać ci to: http://api.jquery.com/jQuery.getJSON/, który powinien zrobić to, co chcesz - ale znowu jest po prostu skrót do tego, co napisałeś. – m90

+0

dane pocztowe? możesz clairfy .. – Baz1nga

+0

Zobacz dokumenty: http://api.jquery.com/jQuery.getJSON/ Musisz określić funkcję zwrotną w swoim adresie URL. –

Odpowiedz

3

Nie jest to możliwe z prostym jsonp. Czytaj this

+0

dziękuję ~ muszę potrzebuję tego doktora. – Thinking80s

+0

@kevin edytowane za pomocą linku – genesis

+2

nie wiesz, jak to pomaga? nie zapewnia rozwiązania, po prostu mówi, że nie możesz tego zrobić. – dewd

38

Aby odpowiedzieć na to pytanie zamiast wysyłać do innego łącza jak powyżej:

JS:

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

The PHP mogłaby wyglądać następująco:

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

Ustawienie opcji dataType do jsonp umożliwi jQuery automatyczne dodawanie dodatkowego ?callback=? na końcu url w celu określenia wywołania zwrotnego. Jeśli określisz swoje własne, jak wyżej, użyje ono nazwy, którą przechodzisz. Jeśli chcesz określić nazwę wywołania zwrotnego json, użyj właściwości jsonpCallback. Lub możesz dodać jako parametr do właściwości danych. Jeśli potrzebujesz więcej informacji, odwiedź Ajax jQuery API: http://api.jquery.com/jQuery.ajax/.

Nie zapomnij dodać ; w ciągu wynikowym.

Mam nadzieję, że to pomoże!

+3

Dziękuję bardzo! Po przejrzeniu kilkunastu przykładów, ten wreszcie sprawił, że mój kod działał! – sahithya