[Çözüldü] jQuery - AJAX ile WebServis'ten nasıl JSON çekebilirim?

Başlatan Timur, 08 Mayıs 2014 - 17:35:57

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Timur

Aşağıda benim bütün html-javascript kodumu grebilirsin. Temel olarak bir webservisteki JSON datasını alıp kodun içerisindeki arr değişkeni yerine atamaya çalışıyorum. Sayfayı browser'da açtığımda hiçbirşey göstermiyor. Bunu nasıl yapabilirim?

Demo JSON data:

{
    "period_range": [1, 13, 25, 37, 49, 61, 73, 74],
    "rows": [{
        "values": [1610149193.0, 1603728380.0, 1557535896.0, 1606110048.0, 1557283566.0, 1636946570.0, 290937972.0],
        "title": "Total Market"
    }, {
        "item_id": 222725,
        "values": [462.0, 375.0, 513.0, 291.0, 239.0, 197.0, 21.0],
        "title": "Renault"
    }, {
        "item_id": 222519,
        "values": [0.0, 0.0, 0.0, 0.0, 0.0, 611.0, 20.0],
        "title": "Fiat"
    }, {
        "item_id": 222930,
        "values": [9.0, 203.0, 155.0, 50.0, 130.0, 73.0, 20.0],
        "title": "Peugeot"
    }],
    "column_titles": [1199145600000, 1230768000000, 1262304000000, 1293840000000, 1325376000000, 1356998400000, 1388534400000]
}



html, javascript kodum:

<html>
<head>
    <meta content="text/html; charset=utf-8" http-equiv="content-type">
    <link href="/css/result-light.css" rel="stylesheet" type="text/css">
    <script src="http://warpech.github.io/jquery-handsontable/lib/jquery.min.js"></script>
    <script src="http://warpech.github.io/jquery-handsontable/dist/jquery.handsontable.full.js"></script>
    <link href="http://warpech.github.io/jquery-handsontable/dist/jquery.handsontable.full.css" media="screen" rel="stylesheet">
    <link href="http://warpech.github.io/jquery-handsontable/demo/css/samples.css?20140401" media="screen" rel="stylesheet">
    <style type="text/css">
        body {background: white; margin: 20px;}
        h2 {margin: 20px 0;}
    </style>

    <script type='text/javascript'>
        $(document).ready(function () {
            $.ajax({
                type: "GET",
                url: "http://xx.xx.xx.xx:yy/my_web_service",
                data: { generic:{"measure":"1","item_id":["222049"],"drilldown_item_id":-1,"period_delta":12,"show_total":true,"db_name":"ABC","drilldown_page":1} }
            })
            .done(function( arr ) {
                $('#myTable').handsontable({
                    data: arr,
                    minSpareRows: 1,
                    //colHeaders: true,
                   contextMenu: true,
                   readOnly: true,
                  fixedColumnsLeft: 1
                });
            });
        });
    </script>

    <title></title>
</head>

<body>
    <div class="handsontable" id="myTable" style="width: 400px; margin-left:auto; margin-right:auto; background-color:silver"></div>
</body>
</html>

gokhanyildiz

#1
Bu işlemi masaüstünüzde yapmaya çalışıyorsanız uzak sunucudan veriyi çekemezsiniz veriyi çekeceğiniz dosyanın html dosyanızla aynı dizinle olması gerekir. Bunun için dosyanızı localhostunuzda çalıştırırsanız problem yapamazsınız. Ayrıca json verilerinizi decode edip arr değişkenine bu şekilde atayın. Örnek verecek olursak json verilerinizi $json_data değişkenine atayıp $json = json_decode($json_data); dediğimizde veriler $json[] dizisi içine çıkacaktır. Öncelikle bu diziyi print ederek istediğiniz veriler geliyor mu gelmiyor mu kontrolünü yapabilirsiniz.


Ayrıca json kodlarınızdaki hataları incelemek isterseniz http://jsonlint.com adresini kullanabilirsiniz.

Timur

Alıntı yapılan: MaTh1ens - 08 Mayıs 2014 - 18:16:41
Bu işlemi masaüstünüzde yapmaya çalışıyorsanız uzak sunucudan veriyi çekemezsiniz veriyi çekeceğiniz dosyanın html dosyanızla aynı dizinle olması gerekir. Bunun için dosyanızı localhostunuzda çalıştırırsanız problem yapamazsınız. Ayrıca json verilerinizi decode edip arr değişkenine bu şekilde atayın. Örnek verecek olursak json verilerinizi $json_data değişkenine atayıp $json = json_decode($json_data); dediğimizde veriler $json[] dizisi içine çıkacaktır. Öncelikle bu diziyi print ederek istediğiniz veriler geliyor mu gelmiyor mu kontrolünü yapabilirsiniz.


Ayrıca json kodlarınızdaki hataları incelemek isterseniz http://jsonlint.com adresini kullanabilirsiniz.

hocam veriyi çektiğim dosyanın html dosyam ile aynı dizinle olması mümkün değil çünkü bu webservis python-django ile yazıldı. benim bu oluşturduğum html dosyasını browser'da göstermem için ayrı dizinlerde olması lazım. aynı klasörün altına getirdiğimde TemplateDoesNotExist gibisinden bir hata alıyorum

alquirel

Firebug gibi bir eklenti ile Ajax ile gerçekten veriyi alabiliyor musun, alamadığında ne hata dönüyor, ya da alıyorsun ama sayfaya basma noktasında mı sıkıntı var bence hatanın yeri ve zamanını ortaya koymak gerek. Çünkü kodda ben bariz bir hata göremedim.

gokhanyildiz

Alıntı yapılan: Timur - 08 Mayıs 2014 - 19:42:53
Alıntı yapılan: MaTh1ens - 08 Mayıs 2014 - 18:16:41
Bu işlemi masaüstünüzde yapmaya çalışıyorsanız uzak sunucudan veriyi çekemezsiniz veriyi çekeceğiniz dosyanın html dosyanızla aynı dizinle olması gerekir. Bunun için dosyanızı localhostunuzda çalıştırırsanız problem yapamazsınız. Ayrıca json verilerinizi decode edip arr değişkenine bu şekilde atayın. Örnek verecek olursak json verilerinizi $json_data değişkenine atayıp $json = json_decode($json_data); dediğimizde veriler $json[] dizisi içine çıkacaktır. Öncelikle bu diziyi print ederek istediğiniz veriler geliyor mu gelmiyor mu kontrolünü yapabilirsiniz.


Ayrıca json kodlarınızdaki hataları incelemek isterseniz http://jsonlint.com adresini kullanabilirsiniz.

hocam veriyi çektiğim dosyanın html dosyam ile aynı dizinle olması mümkün değil çünkü bu webservis python-django ile yazıldı. benim bu oluşturduğum html dosyasını browser'da göstermem için ayrı dizinlerde olması lazım. aynı klasörün altına getirdiğimde TemplateDoesNotExist gibisinden bir hata alıyorum


https://forum.ubuntu-tr.net/index.php?topic=14457.0 Şu konudan yararlanarak localhost kurup dosyanı localhost üzerinde çalıştırır mısın?

Timur

Alıntı yapılan: MaTh1ens - 08 Mayıs 2014 - 18:16:41
Bu işlemi masaüstünüzde yapmaya çalışıyorsanız uzak sunucudan veriyi çekemezsiniz veriyi çekeceğiniz dosyanın html dosyanızla aynı dizinle olması gerekir. Bunun için dosyanızı localhostunuzda çalıştırırsanız problem yapamazsınız. Ayrıca json verilerinizi decode edip arr değişkenine bu şekilde atayın. Örnek verecek olursak json verilerinizi $json_data değişkenine atayıp $json = json_decode($json_data); dediğimizde veriler $json[] dizisi içine çıkacaktır. Öncelikle bu diziyi print ederek istediğiniz veriler geliyor mu gelmiyor mu kontrolünü yapabilirsiniz.


Ayrıca json kodlarınızdaki hataları incelemek isterseniz http://jsonlint.com adresini kullanabilirsiniz.

Sorun çözüldü hocam. Çok teşekkür ederim

heartsmagic

Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.