Toon posts:

[JS Sidebar Gadget] Geen AJAX mogelijk via Prototype

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste mede-Tweakers,

Ik heb redelijk wat ervaring met Javascript/AJAX, en voor een projectje had ik bedacht een Windows Sidebar Gadget te maken die dan zou syncen met een internetsite.

HTML/CSS enz geen probleem.
Maarrrr... de AJAX component wil niet connecten.

Ik gebruik de Prototype library en die werkt netjes.
Mijn code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<html>
<head>
<script src="js/prototype.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="css/screen.css"/>

<script type="text/javascript">
function init()
{
    prompt("1");
    var myAjax = new Ajax.Request(
    'http://checkip.dyndns.org/',
    {
        method: 'get',
        onComplete: parseResponse,
        onFailure: parseResponse,
        asynchronous: false
    });
    prompt(myAjax.toString());
}
function parseResponse(o)
{
    prompt("2");
    ip.innerText=o.responseText;
    prompt("3");
}
</script>
</head>
<body onload="init()">
    <span id="ip"></span>
</body>
</html>

De bovenstaande code is 100% gekopieerd van een tutorial, behalve de prompts en de onFailure. Hij laat de prompts van 1 en myAjax.toString zien. Die van parseResponse worden helaas nooit weergegeven.

Alvast bedankt voor jullie tijd,

frvge

[ Voor 0% gewijzigd door Verwijderd op 20-04-2009 01:59 . Reden: typo ]


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Wat is een Windows Sidebar Gadget precies? Heeft die genoeg rechten om XML requests te doen naar een andere website dan het huidige domein? Als ik een html-bestand open vanaf m'n harddisk dan mag die ook geen xml requests doen - je moet al een webserver runnen om dat überhaupt te kunnen, en zelfs dan nog kan ie alleen maar naar localhost connecten.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
In Vista heb je een Sidebar. Deze geeft dingen als het weer aan, of een kalender.
Veel hiervan maken gebruik van standaard XMLHTTP requests die dan door Prototype geabstraheerd worden.

In principe hoort prototype te werken (volgens tutorials dan). Er is waarschijnlijk 1 klein dingetje dat ik over het hoofd zie.

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Wat .oisyn zegt dus. Firefox geeft de volgende melding als je bovenstaande HTML in die browser opent:
Beveiligingsfout: inhoud op file://///.../checkip.html laadt misschien geen gegevens van http://checkip.dyndns.org/.
Oftewel: je mag geen AJAX request doen vanaf je locale computer naar een website.

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Ow... gebruik trouwens gewoon alert() in plaats van prompt(), dat is netter.

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31
Wat je eventueel kunt doen is JSONP gebruiken ipv AJAX. Dit voorkomt de gebruikelijke cross-domain issues, maar ik weet niet of dat in dit geval ook werkt (lokale gadget).

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Als het ding gewoon tekst uitspuugt heb je er natuurlijk niet zoveel aan om het als script te includen, JSONP lost dat idd op, maar daar is server-side support nodig. De vraag is natuurlijk of http://checkip.dyndns.org/ dat ook ondersteunt. Het lijkt er niet op (overigens zou je in dit geval wellicht ook nog weg kunnen komen met een iframe :))

[ Voor 25% gewijzigd door .oisyn op 20-04-2009 18:21 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Heb je je permissions wel goed staan in je gadget manifest?

Ik heb zelf niet zoveel ervaring met Vista Sidebar gadgets, maar het moet inderdaad wel mogenlijk zijn om XmlHttpRequests te doen, want dat is volgens mij de manier waarop de meeste gadgets werken die informatie van internet gebruiken.

[ Voor 66% gewijzigd door Woy op 20-04-2009 18:54 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Permissions staan op Full. Als ik de tutorials 1-op-1 kopieer doet hij het nog niet, dus het ligt waarschijnlijk aan een beveiligingsinstelling, maar alles heb ik meerdere malen op 'default' en 'laag' gezet in de IE Security opties.

Als ik de kant-en-klare gadget van de tutorial installeer werkt die wel, maar bij mijn eigen gadget dus niet. Vreemd vreemd vreemd.

@HuHu:
Microsoft heeft de alert-mogelijkheid voor gadgets eruit gehaald. Prompt is een work-around, tenzij je messageboxes met VBscript wil gaan maken, waar ik niet in thuis ben.

[ Voor 19% gewijzigd door Verwijderd op 22-04-2009 01:37 ]

Pagina: 1