Autor Zpráva
Pavlínka
Profil
Ahoj :)
mám 2 problémy :D
ten první je, že script posílá data jako GET nikoli jako POST
a ten druhý, že po odeslání dat nevyvolá znova funkci.
můžete prosím prosím někdo poradit?

function take_snapshot() {
        $.ajax({
          url: "myscript.php",
          method: "POST",
          data:"data="+text,
          success: function() {
            take_snapshot();
         }
        });
} );
Taps
Profil
Pavlínka:
1) podle čeho soudíš že data se neodesílají přes POST
2) jaký máš důvod ke znovuvolání funkce take_snapshot?
Pavlínka
Profil
1.)
když jsem dala "prozkoumat prvek" na sránce v FF
tak url byla myscript.php?data=blablabla
nikoli pouze myscript.php

2.)
aby se dokola posílali data? :D
Keeehi
Profil
Když se ti to odesílá na špatnou URL, nemůžeš přece očekávat, že se zavolá kód v success. Ten se přece volá, jen když požadavek uspěje. Když vyřešíš to odesílání, měla by se vyřešit i to znovu volání.

Nějak v tom ale nevidím chybu. Zkusil bych ty data zapsat objektovým způsobem.
function take_snapshot() {
        $.ajax({
          url: "myscript.php",
          method: "POST",
          data: {data: text},
          success: function() {
            take_snapshot();
          }
        });
});

Jinak to znovu spuštění by mělo jít zapsat i takto
success: take_snapshot
ta anonymní funkce je tam v tomto případě zbytečná.
_es
Profil
Pavlínka:
když jsem dala "prozkoumat prvek" na sránce v FF
Aký „prvek“ - to je predsa nejaký viditeľný element stránky a tvoja funkcia žiadny nevyrába - len opakovane bombarduje server HTTP dotazmi. Podobne, kde „bola URL“? Nie je ti vôbec rozumieť.
Pavlínka
Profil
_es:
- to je predsa nejaký viditeľný element stránky a tvoja funkcia žiadny nevyrába
pleteš se... je tam pesně jaké odkazy to volá...

navíc když vyměním $_POST za $_GET
script funguje
_es
Profil
Pavlínka:
je tam pesně jaké odkazy to volá...
Kde „tam“? „Prozkoumat prvek“ je predsa v menu, keď sa na stránke klikne pravým tlačítkom na niečo viditeľné. A ako vieš, či funguje alebo nefunguje, keď uvedená funkcia nijako nepracuje s vrátenými dátami?
Pavlínka
Profil
celý script testuji zde:
46.36.35.132


myscript.php
vypadá tako:
    $encoded_data = $_POST['jpgdata'];
    $binary_data = base64_decode( $encoded_data );
    // save to server (beware of permissions)
    $result = file_put_contents( 'webcam/test.jpg', $binary_data );
    if (!$result) die("Could not save image!  Check file permissions.");
Keeehi
Profil
Pavlínka:
My s tím budeme mít trochu problém, protože
1) getUserMedia() no longer works on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins for more details.
2) GET http://46.36.35.132/webcam.swf 404 (Not Found)
Pavlínka
Profil
Keeehi:
My s tím budeme mít trochu problém, protože
aha... já to testovala na mozile tam to netřeba swf...

nahrála jsem tam swf ale problém i na chrome přetrvává (posílá se GET nikoli post)


asi nikdo neví, že? :(
get mi takové množství dat nepojme :(
Pavlínka
Profil
nevím sice proč to nejde... ale nakonec jsem to úspěšně vyřešila skrz tento scriptík:

        if (window.XMLHttpRequest) {objekt = new XMLHttpRequest();}
        else if (window.ActiveXObject) {
          try {
            objekt = new ActiveXObject("Msxml2.XMLHTTP");
          } catch (error) {
            objekt = new ActiveXObject("Microsoft.XMLHTTP");}
          }
        if(objekt){
            objekt.open("POST","myscript.php",true);
            objekt.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
            objekt.onreadystatechange=function(){
            }
            objekt.send('data='+text);
        }  


dělá to vpodstatě to samé jen bez knihovny :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: