AJAX nefunguje správně na ostrém serveru
- Phalanx
- Člen | 310
Ahoj, na localhostu mi běží vše v pořádku, ale na ostrém serveru, kde je NGINX, nikoliv. Mám komponentu košíku, kde se snažím ajaxem měnit počet jednotlivých produktů.
Zjistil jsem, že problém je v prázdných hodnotách $_GET (pouze na ostrém serveru). V console problém není.
$.nette.ajax({
url: {link changeQuantity!},
data: { id: id, value: value }
});
?do=cartForm-changeQuantity&id=16&value=1&_=1447855048393
// v komponentě cartForm
public function handleChangeQuantity()
{
// GET i POST jsou prázdné...
$id = isset($_GET['id']) ? (int) $_GET['id'] : NULL;
$quantity = isset($_GET['value']) ? (int) $_GET['value'] : NULL;
// taky bohužel prázdné
$test = $this->presenter->getParameter('id');
}
Budu vděčný za jakoukoliv radu.
- David Matějka
- Moderator | 6445
nemas nahodou v masce routy <id>
? protoze parametr
‚id‘ v GET to neprepise
no tim to nebude, kdyz to neni ani v $_GET
- Pavel Kravčík
- Člen | 1196
Parametry by měly mít název komponenty:
data: { cartForm-id: id, cartForm-value: value }
Na automatické doplňování používám tuhle funkci:
$control->getParameterId('value')
- Phalanx
- Člen | 310
Díky oběma. Jenom hádám – $_GET proměnné budou nejspíš odfiltrovány a do komponenty se vůbec nedostanou (dávalo by mi to smysl podle toho co psal Pavel).
Přes $_POST se do komponenty dostanou.
$.nette.ajax({
url: {link changeQuantity!},
type: 'POST',
data: { id: id, value: value }
});
Ještě si s tím zkusím pohrát
Editoval Phalanx (18. 11. 2015 15:26)
- jiri.pudil
- Nette Blogger | 1032
Jak máš nakonfigurovaný nginx? Imo tam nejspíš máš nějaké podobné routování requestů na index:
location / {
try_files $uri $uri/ /index.php?$args;
}
a nepředáváš v něm to ?$args
.