XML ophalen met jQuery

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Veur Heur

Veur Heur

23/03/2012 00:17:03
Quote Anchor link
Met het volgende stukje jQuery wil ik een XML ophalen van een (lokale) freecom MusicPal (een connected mediaspeler) om vervolgens de gegevens te tonen in een app die ik aan het schrijven ben.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    function init() {
        $.ajax({    
            url: 'http://'+user+':'+pass+'@'+ip+'/admin/cgi-bin/state.cgi?fav=1',
            data: '',
            dataType: 'jsonp',

            success: function(result) {
                alert(result);
            },
            
            error: function (xhr, ajaxOptions, thrownError){
                alert(xhr.status);
                alert(thrownError);
            }
        });
        return false;
    }


Probleem is dat deze manier van werken geen terugkoppeling geeft, alleen de url uitvoert (tenminste daar lijkt het op, want als ik op dezelfde manier de aan/uit functie aanroep, werkt de functie wel. Gezien de aan/uit functie geen output geeft, boeit het ook niet).

Haal ik "dataType: 'jsonp'," weg, dan krijg ik de volgende melding:

"[Exception... "Access to restricted URI denied" code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)" location: "http://test.vespino.nl/app/freecom/jquery.js Line: 7869"]"

Helaas heb ik hiervoor nog geen oplossing kunnen vinden. Ook heb ik de nodige opties van jQuery (username:password) getest, maar die lijken geen verschil te maken. Standaard krijg ik overigens de volgende output:

"jQuery16203684334675921852_1332458061762 was not called"

Iemand bekend met de fouten en belangrijker mogelijk een oplossing? Het is overigens niet mogelijk om de uitvoer via PHP te laten lopen (laat ik het voor zijn ;)).
 
PHP hulp

PHP hulp

25/11/2024 22:35:21
 
Erwin H

Erwin H

23/03/2012 08:13:43
Quote Anchor link
Misschien een domme vraag, maar om bij het begin te beginnen: heb je de url die je aan probeert te roepen in de Ajax call al eens direct in de browser geprobeert? Krijg je dan wel een json string te zien?
 
Veur Heur

Veur Heur

23/03/2012 08:29:03
Quote Anchor link
Geen domme vraag, maar uiteraard heb ik dat al gedaan. Dan krijg ik overigens een XML te zien, geen json.
Gewijzigd op 23/03/2012 08:32:29 door Veur Heur
 
Erwin H

Erwin H

23/03/2012 08:34:20
Quote Anchor link
Dan moet je dus het datatype op 'xml' zetten en niet op 'json'.
 
Veur Heur

Veur Heur

23/03/2012 08:44:13
Quote Anchor link
Nee want zoals ik al zei in de post:

Haal ik "dataType: 'jsonp'," weg, dan krijg ik de volgende melding:

"[Exception... "Access to restricted URI denied" code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)" location: "http://test.vespino.nl/app/freecom/jquery.js Line: 7869"]"

Hetzelfde geldt voor wijzigen naar een ander dataType.
 
Elwin - Fratsloos

Elwin - Fratsloos

23/03/2012 09:16:44
Quote Anchor link
Laat me raden; je probeert iets op te halen vanaf een ander domein dan waar jouw site draait?

Leesvoer over JSONP

Als je echt XML wilt ophalen van die externe locatie; dan zou je in PHP een proxy kunnen maken die met cURL de gegevens 1-op-1 doorgeeft.
Dus: AJAX-call naar /proxy.php en proxy.php met cURL de request naar http://www.extern.nl laten doen.
 
Erwin H

Erwin H

23/03/2012 09:25:16
Quote Anchor link
Opolo Webdesign op 23/03/2012 08:44:13:
Hetzelfde geldt voor wijzigen naar een ander dataType.

Dat stond er in eerste instantie niet bij ;-)



Toevoeging op 23/03/2012 09:27:45:

En dan in aanvulling op wat Elwin zegt: http://www.cypressnorth.com/blog/programming/cross-domain-ajax-request-with-xml-response-for-iefirefoxchrome-safari-jquery/
 
Veur Heur

Veur Heur

23/03/2012 09:53:46
Quote Anchor link
Via PHP gaat het dus niet omdat het in app vorm moet gaan draaien.

De oplossing van Erwin ook niet gezien het gaat om een locale device.
 
Erwin H

Erwin H

23/03/2012 10:16:49
Quote Anchor link
Mijn echte kennis hiervan stopt ongeveer op dit moment....
Maar ik begrijp niet waarom die php versie niet kan werken. Ik begrijp dat je de data op een mobiel oid nodig hebt, niet op de server. Maar hoe het in dit geval zou werken is dat het device niet een call maakt naar die url in je ajax call nu, maar een call naar een webserver van jou. Die webserver doet zelf niets, maar zet de call feitelijk door naar de echte url via een curl request. De data wordt dan op dezelfde manier terug gerouteerd.
Vanaf je device is het dus exact gelijk, alleen de url is anders. Om eerlijk te zijn begrijp ik niet zo goed waarom dat niet zou kunnen (maar tegelijk besef ik ook dat ik niet alle info heb natuurlijk).
 
Veur Heur

Veur Heur

23/03/2012 10:22:02
Quote Anchor link
Het kan niet omdat het apparaat lokaal staat. Ik heb bijv. geen toegang tot jouw netwerk toch?
 
Erwin H

Erwin H

23/03/2012 10:28:05
Quote Anchor link
Maar als jij een server hebt waar je wel controle over hebt kan je daarnaartoe wel jsonp calls uitvoeren. Daarmee kan je het cross domain issue oplossen. Die server doet dan de curl request en zet de data om van xml naar json en stuurt het door naar je device.
Maar dat is natuurlijk nog maar de theorie....
 
Veur Heur

Veur Heur

23/03/2012 10:30:04
Quote Anchor link
Het gaat niet om een server, het gaat om een MusicPal.
 
Erwin H

Erwin H

23/03/2012 10:40:42
Quote Anchor link
Ok, ik heb geen idee wat een music pal is, maar volgens mij maakt dat nog steeds niet uit. Anyway, ik heb mijn zegje gedaan meer kan ik niet doen. Als jij het niet wilt proberen, dan kan ik roepen wat ik wil, maar dat lost niets op. Succes!
Gewijzigd op 23/03/2012 11:03:12 door Erwin H
 
Veur Heur

Veur Heur

23/03/2012 11:16:42
Quote Anchor link
Een MusicPal is (zie mijn originele post) een muziekspeler die je aan je netwerk hangt. Ik heb getest wat je zegt, maar die lopen via een externe website, welke geen toegang hebben tot je locale netwerk.
 
Keizer Webdesign

Keizer Webdesign

03/01/2013 20:26:54
Quote Anchor link
Is het al opgelost?
Zo nee leg je idee dan uit...
Dan kunnen we je misschien helpen.

Ik snap t half:
Je wil muziek van een lokaale mediaspeler op je Telefoon beluisteren?
Het gaat hier zeker om android?
Is er dan geen manier om t in java te schrijf of objectieve C
 
Wouter J

Wouter J

03/01/2013 22:37:42
Quote Anchor link
Misschien niet handig om te reageren op een topic van een jaar geleden?
 
Keizer Webdesign

Keizer Webdesign

03/01/2013 22:40:43
Quote Anchor link
Dat snap ik maar de titel sprak me aan
 
Wouter J

Wouter J

03/01/2013 22:46:53
Quote Anchor link
Das leuk voor je, maar het probleem zal je echt niet gaan oplossen.

Als je nou een leuke oplossing zou delen, maar het enige wat je doet is vragen stellen om verduidelijking, geloof me, of (1) dit idee bestaat of (2) dit is allang opgelost of (3) de TS kan geen verduidelijking meer geven omdat hij er niks vanaf weet
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.