Bonjour,
Difficile de ne pas se rendre compte, que le framework de silverlight 2 est quelque peu dépouillé en terme d'émission de données.
Autant il est facile de récupérer des données grâce à WebClient, autant il est pour ainsi dire impossible d'en transmettre par ce même biais, tant le composant est "vide" par rapport à son frangin sur WPF, en effet en SL2, impossible d'émettre des données en POST... uniquement en GET dans l'url, mais tout le connais les limitations techniques. Données en claire et peu nombreuses (256 caractères maxi) pas du tout adapté à remonter du texte.
Je veux bien que Microsoft privilègie les "WebServices", néanmoins, tout le monde n'a pas un serveur avec ASP.NET pour répondre aux requêtes, et pour des raisons purement techniques le serveur en question doit impérativement rester sous unix, et je n'ai pas envie de m'amuser à écrire un WebService sous forme d'un démon ou d'un module Apache2 en C++ ou en Remoting.NET avec mono.
Autre solution... remonter des données vers des scripts serveur (php, et perl) mais là en GET... non merci...
Il me faut impérativement du POST, c'est donc naturellement que je me suis tourné vers Ajax.
J'avais d'un ancien projet une lib Javascript que j'utilisais, pour utiliser Ajax.
Tout va bien tant que j'interagit de SL2 vers la page hote pour appeler une fonction qui me créé l'objet d'interaction Ajax (un objet JS).
Tout va bien encore temps que j'appel les méthodes et définis les propriétés d'initialisation.... mais rien ne va plus dès que j'appel la méthode principale : runAJAX... et oui, cette méthode JS demande à l'activex d'ouvrir une page internet... et c'est la débandade...
une jolie exception javascript rend l'exécution impossible : Ligne 140 : Permission refusée.
La ligne 140 est justement celle ou j'appel la méthode open de l'activex ajax en JS.
Nota: Dans un projet non silverlight, comme des pages php, cette lib fonctionne à merveille, et cette ligne ne pose jamais problème, sauf dans le cas d'un appel d'une page hostant une appli SL2.
Quelqu'un d'entre vous à t'il une solution à mon problème, autre qu'un webservice ?
y a t'il une solution pour "octroyer" la permission à cet activex de faire son travail, vu que MS n'a pas jugé bon d'implanter complètement WebClient ?
Partager