Web s tržbou 1,5 - 2,5 milionu Kč ročně na prodej
Zobrazují se odpovědi 1 až 3 z 3

Output JSONP v php

  1. Ahoj, mam nejaky export dat na serveru a potrebuji s nimi pracovat v ramci mobilni aplikace.
    Abych se vyhnul problemum s cross domain, potrebuji export v JSONP, poradil by mi prosim nekdo jak takovy export upravit?


    Nyni je to klasicky JSON, mam pridat nejakou hlavicku, uzavrit do zavorek ?


    Diky za kazdou radu, ci ukazku.

  2. Happy Robot :]

    Co se právě děje na Webtrhu?

  3. Soubor jsonp.js obsahuje
    Kód:
    callback( { JSONObject } );
    Stránka obsahuje
    Kód:
    <script type="text/javascript">
    function callback(json) {
        console.log(json);
    }
    </script>
    <script type="text/javascript" scr="http://example.com/jsonp.js">
    Takže akorát pošlete JSON jako parametr callbacku();

  4. Například mám JSON:
    Kód:
    {"a": 1}
    Obalím ho do volání funkce:
    Kód:
    hello_world({"a": 1});
    Ten JSONP sice nemůžu z prohlížeče číst ajaxem, ale můžu ho vložit jako skript např. <script src="jsonp.php"> a když to udělám, zavolá se funkce hello_world a dostane jako argument původní JSON. Využívá se tady toho, že JSON je zároveň validní javascript.

    Ještě je třeba vyřešit, aby pokud stahuji přes JSONP vícekrát, abych věděl, z kterého zdroje jde odpověď. To se řeší tak, že jméno funkce (hello_world) není pevné, ale určuje se GET parametrem.

    Takže skript vkládám třeba jako <script src="jsonp.php?callback=hello_world_again"> a ten PHP skript vygeneruje název funkce právě hello_world_again. Často se místo parametru callback používá název jsonp, ale to už je jen otázka konfigurace.

    Poslední vychytávka je posílat odpověd s Content-Type něco jako "text/javascript", ale to už asi není úplně nutné.

    Knihovny jako JQuery generují názvy funkcí automaticky a zároveň je šikovně definují tak, abych dostal výsledek v nějaké success funkci.

Podobná témata

  1. Jsonp data z MySQL
    By Fautzi in forum PHP
    Odpovědí: 3
    Poslední příspěvek: 23.05.2011, 15:19
  2. Odpovědí: 4
    Poslední příspěvek: 06.11.2010, 12:55
Hostujeme u Server powered by TELE3