API Sejmometru via jQuery

59 views
Skip to first unread message

Wojciech Walczak

unread,
Mar 28, 2012, 5:03:58 AM3/28/12
to sejmom...@googlegroups.com
Witam,

czy ktoś z Was korzysta z API Sejmometru przy pomocy jQuery? Pytam, bo
mam problem z pobieraniem JSON-owych rekordów (próbowałem
jQuery.getJSON() i różnych ustawień dla jQuery.ajax()). Jeśli ktoś z
Was tego używa - będę wdzięczny za kilka linijek działającego kodu,
który pozwala pobrać dane z API Sejmometru.

Pozdrawiam serdecznie,
Wojtek Walczak

Paweł Sroka

unread,
Mar 28, 2012, 11:16:14 AM3/28/12
to sejmom...@googlegroups.com
Hej,

Najprawdopodobniej blokuje Cię "same origin policy". Wszelkie requesty ajax'owe pomiędzy domenami są blokowane przez przeglądarkę. Rozwiązaniem jest wsparcie dla JSONP ze strony serwera, ale z tego co patrzyłem to chyba takowego nie ma. Bez callbacków opakowujących JSON'a, samym javascript'em nic nie zdziałasz.

Można jeszcze zrobić machloję w stylu postawieni,a na tym samym serwerze co Twój skrypt, proxy prowadzącego na http://api.sejmometr.pl. Wtedy robisz zapytania do własnej domeny, a proxy dba o przekierowywanie na api.sejmometr.pl. W ten sposób nie podlegasz już pod "same origin policy" i zwykły ajax pójdzie. Choć rozwiązanie do pięknych i elastycznych nie należy (na shared hostingu proxy raczej nie postawisz).

Pozdrawiam,
Paweł Sroka

Wojciech Walczak

unread,
Mar 28, 2012, 5:52:03 PM3/28/12
to sejmom...@googlegroups.com
Cześć,

dzięki za odpowiedź. Chciałem odświeżyć sobie jQuery, ale skoro tak
się sprawy mają, to póki co odłożę to na później.

Taka drobna uwaga do dokumentacji. Na http://sejmometr.pl/api/poslowie
byłoby fajnie, gdyby opis zmiennej klub_id zawierał spis
identyfikatorów i nazw klubów. Niby łatwo to na własną rękę ustalić,
ale tak będzie prościej.

I jeszcze jedno pytanie: czy jest możliwe, aby do tablic JSON-owych o
posłach dodać jeszcze jedną zmienną z URL-em do obrazka z twarzą danej
osoby?

Pozdrawiam serdecznie,
Wojtek Walczak

Zbigniew Adam Karski

unread,
May 23, 2012, 7:33:32 PM5/23/12
to sejmom...@googlegroups.com
Jest rozwiązanie


pobrać za pomocą PHP i przekazać do jQuery.
Przyklejam swój "test".

prosty plik PHP ////////////////////////////////////////////////////

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://api.sejmometr.pl/klub/2/info");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);

//$vote = (string) $ch;

//json_decode($vote);

?>


no a potem jQuery ////////////////////////////////

$(document).ready(function(){
  var data = new Object();
  data.hello = "Hello";
  data.world = 'World';
  data.worked = " it worked ";
  data.somebool = true;
  data.array = new Array("he\"ll\"o", '"World"');
  var dataString = $.toJSON(data);
  $.post('votes/67.php', {data: dataString}, function(res){
    var obj = $.evalJSON(res);
    if(obj.somebool === true)
      $("#result").html(obj.hello + ' ' + obj.array[1] + obj.worked + ". Message from PHP: "+obj.php_message);
  });
});


Pozdrawiam



Reply all
Reply to author
Forward
0 new messages