Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[jQuery] YouLess uitlezen in Javascript

Pagina: 1
Acties:

  • Gamerkoe
  • Registratie: Maart 2003
  • Laatst online: 08-08 21:43
Iemand die toevallig met jQuery de YouLess uitmeet? Ik loop elke keer tegen een ander probleem aan en kom er met documentatie helaas nog niet uit 8)7 ..

De volgende code heb ik:
code:
1
2
3
4
5
6
7
8
9
10
11
<script type="application/javascript">
    var sYouLessIP      = "192.168.2.104";
    var sURL            = "http://" + sYouLessIP + "/a";

    var req = $.ajax({
        url: sURL,
        dataType: "jsonp"
    });

    console.log(req);
</script>


Ik vraag hier een jsonp object terug, omdat het domein (IP) van de YouLess anders is dan waar dit script draait. Voor CrossDomain zou je dan jsonp moeten gebruiken. Met de parameters "jsonp: false" en "jsonpCallback: "OutputCall"" heb ik getracht om een Callback functie aan te roepen, maar dit lukt niet?

Output naar JSON maakt niet uit:
code:
1
    var sURL            = "http://" + sYouLessIP + "/a?f=j";

code:
1
2
3
{"cnt":"1086,434","pwr":567,"lvl":0,"dev":"","det":"","con":"*","sts":"","raw":0}
SyntaxError: missing ; before statement
1085,901 kWh

(Het FireBug pijltje staat bij het eerste : teken)
Ik zie in de console wel dat ik data terug krijg, maar dit blijkt geen geldige JSON te zijn, terwijl dit het wel zou moeten zijn en ook klopt volgens JSON parsers.

Ook heb ik $.ajax of $.get geprobeerd. Het dataType naar 'json' veranderen geeft de CrossDomain foutmelding:
code:
1
Cross-origin-aanvraag geblokkeerd: de Same Origin Policy staat het lezen van de externe bron op http://192.168.2.104/a?f=j niet toe. Dit is te verhelpen door de bron naar hetzelfde domein te verplaatsen of door CORS in te schakelen.

20x SF170s + SMA SB3000TL-21 | PV Output


  • telefoontoestel
  • Registratie: Oktober 2002
  • Laatst online: 29-06-2024

telefoontoestel

Maak me gelukkig....Bel!!

Worden bij de response headers ook de header "Access-Control-Allow-Origin" meegegeven met ofwel '*' danwel jouw domein als origin? Als dat niet gebeurt zal je nog steeds ongeldige data terug krijgen. Aan de client side zul je waarschijnlijk ook nog voor de ajax call moeten zetten: $.support.cors = true; Als het goed is hoef je dan ook niet met jsonp aan de gang en krijg je gewoon je data door van de browser.

Let er trouwens wel op dat als je dit doet je in principe een xss vulnerability aan het implementeren bent. Zorg er dan ook voor dat dat deel tenminste afgeschermd is van de buitenwereld.

[ Voor 32% gewijzigd door telefoontoestel op 22-08-2014 08:22 ]

telefoontoestel


  • Gamerkoe
  • Registratie: Maart 2003
  • Laatst online: 08-08 21:43
Ik heb inmiddels PHP geïnstalleerd op mijn Raspberry, daarin had ik het namelijk al werkend. Toch bedankt voor het meedenken!

20x SF170s + SMA SB3000TL-21 | PV Output