2012-06-19 1 views
0

Dans un projet Web en utilisant jsp, je exigence suivanteprocessus inter-domaines xml

Télécharger un fichier (par exemple une image) à un autre domaine, qui renvoie un xml qui comprend les détails de fichier téléchargé (par exemple: chemin de image téléchargée, etc.).

Comment puis-je capturer ce fichier XML pour enregistrer les détails dans db?

Je ne peux pas faire un formulaire html normal, puisque je perds le contrôle après cela. J'ai donc essayé de l'implémenter en définissant la cible du formulaire sur un iframe. Mais je ne peux pas traiter le contenu d'iframe?

Des suggestions comment je peux accomplir cela? Puis-je traiter ceci en utilisant yql?

Répondre

0

En supposant que le serveur sur lequel vous soumettez le fichier n'est pas sous votre contrôle (vous ne pouvez donc pas utiliser CORS), vous avez la requête par procuration via votre propre serveur.

Vous ne pouvez pas utiliser YQL car vous ne pouvez pas faire de demandes de post avec lui.

+0

Merci pour la réponse. Je reçois la réponse xml en tant que contenu iframe. Puis-je traiter cet objet XML en utilisant yql? – Sree

+0

Non, c'est pourquoi j'ai dit "Vous ne pouvez pas utiliser YQL". YQL obtient des données en faisant des requêtes HTTP non en violant la politique de même origine. – Quentin

+0

ok. Pouvez-vous me dire comment utiliser un proxy? Avez-vous un exemple? – Sree

1

Oui, vous pouvez le faire en utilisant YQL. Pas facile cependant, et vous devrez configurer votre propre table YQL.

Chaque table YQL est un fichier XML décrivant comment utiliser les données. La spécification XML YQL vous permet de définir un élément <execute> que vous pouvez utiliser pour write JavaScript code that does almost anything.

A l'intérieur de ce bloc <execute>, vous pouvez utiliser l'objet y.rest pour envoyer des données POST ailleurs.

Vous devrez probablement encoder le fichier en utilisant base64 pour être en mesure de réellement POST de données en utilisant la syntaxe YQL, quelque chose comme INSERT INTO mywebsite.files (name, data) VALUES ('foo.png', 'KBB987987JJBHBGV==') (second param est un fichier codé en base64).