JavaScript

JSONP

Publikováno JavaScript

Už se vám někdy stalo, že jste potřebovali z JavaScriptu zavolat skript na úplně jiném serveru? Zkusili jste zavolat URL přes XMLHttpRequest a v konzoli na vás vyskočila hláška:

XMLHttpRequest cannot load http://www.ciziweb.cz/. Origin http://www.vasweb.cz is not allowed by Access-Control-Allow-Origin.

K vyřešení toho problému jsou dva způsoby. Buď použijete Cross-site HTTP požadavky, aby jste povolit přistup, ale v takovém případě musíte mít k oněm cizím stránkám přístup, aby jste pozměnili HTTP hlavičku „Access-Control-Allow-Origin“. Například v PHP:

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Max-Age: 1000');

Dále je pak tady ale JSONP (JSON with padding). Což je alternativa k XMLHttpRequestu. Požadavek vypadá takto:


Pochopitelně musí stránka http://www.ciziweb.cz/ vracet JavaScript kód, který se spustí. Podle standadu od Douglase Crockforda (oficiální stránky JSONP) by měla stránka vracet volání funkce (jejiž název by se měl přenášet v URL požadavku) s jedním parametrem, který bude obsahovat data v JSON a funkce by měla být definovaná ještě před požadavkem, tedy né v odpovědi od serveru http://www.ciziweb.cz/.



Problémem může být, že lze odeslat date pouze přes parametry v URL (GET) a nikoli přes POST.

Číst celé

str_replace() – v PHP, v MySQL, v JavaScriptu

Publikováno JavaScript, MySQL, PHP

Ukázka přepisovací funkce v PHP, MySQL a Javascriptu.

PHP

// "123 456 798" => "123456789
$telefon = "123 456 789";
$telefon = str_replace(" ","",$telefon);

MySQL

# "123 456 798" => "123456789
SELECT REPLACE(`telefon`, ' ', '') FROM `tabulka`;

JavaScript

// "123 456 798" => "123456789
var telefon = "123 456 789";
telefon = telefon.replace(" ","");

Číst celé

Automatické kompilování CoffeeScriptu

Publikováno JavaScript

Jedna věc je psát v perfektním jazyce, ale na druhou stranu, koho by pořád bavilo po každé úpravě některého souboru v CoffeeScriptu pořád a pořád dokola spouštět kompilaci. Od jsme se přeci nestali programátory, abychom dělali věci pořád dokola, umíme si je přeci zautomatizovat.

Můžete mít třeba nastavený svůj editor, který při uložení soubor sám zkompiluje. Druhou, podle mě jednoduší možností, hlavně pro začátečníky je, že CoffeeScript po instalaci (i ve Windows) umí hlídat určité složky a pokud se některý soubor změní, tak jej zkompiluje. Stačí spustit proces v příkazové řádce Node.JS:

> coffee -wc -o lib/ src/

Číst celé