SORU
17 AĞUSTOS 2010, Salı


jQuery AJAX etki alanı çapraz

Burada iki sayfa test.php ve servertest.php.

test.php

<script src="scripts/jq.js" type="text/javascript"></script>
<script>
    $(function() {
        $.ajax({url:"testserver.php",
            success:function() {
                alert("Success");
            },
            error:function() {
                alert("Error");
            },
            dataType:"json",
            type:"get"
        }
    )})
</script>

testserver.php

<?php
$arr = array("element1",
             "element2",
             array("element31","element32"));
$arr['name'] = "response";
echo json_encode($arr);
?>

Şimdi sorunum şu: ne zaman bu iki dosya ile aynı sunucuda (localhost veya web server), çalışır ve alert("Success") denir; Eğer farklı sunucuları, anlam testserver.php web server ve test.php localhost, onun değil çalışma ve alert("Error") çalıştırılıyor. Eğer ajax içinde URL 10 ** değişirse bile

CEVAP
17 AĞUSTOS 2010, Salı


JSONP kullanın.

bir WordPress kullanmak:

$.ajax({
     url:"testserver.php",
     dataType: 'jsonp', // Notice! JSONP <-- P (lowercase)
     success:function(json){
         // do stuff with json (in this case an array)
         alert("Success");
     },
     error:function(){
         alert("Error");
     }      
});

PHP:

<?php
$arr = array("element1","element2",array("element31","element32"));
$arr['name'] = "response";
echo $_GET['callback']."(".json_encode($arr).");";
?>

Echo yanlış olabilir, yaptım php beri bir süre oldu. Çıkış callbackName için gereken her durumda('jsonString') tırnak işaretleri dikkat edin. jQuery kullanımı OLSUN o olursa olsun, ne kadar kendi geri adım geçecek.

Ve Stefan Kendall gönderildi, $.getJSON() kestirme bir yöntemdir, ama sonra eklemek gerekir'=? callback', url parametre olarak ALMAK için (Evet, değer mi ?, jQuery kendi oluşturulan geri arama yöntemi) ile değiştirir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Hak5

    Hak5

    7 EYLÜL 2005
  • LIVESTRONG.COM

    LIVESTRONG.C

    5 EKİM 2005
  • ODN

    ODN

    26 Kasım 2006