2010-05-24 8 views
2

J'essaie de publier des données à une page qui gère pour moi. Je reçois toujours l'erreur suivante, cependant:Est-ce que POST dans l'application AIR

ioErrorHandler: [IOErrorEvent type = "ioError" bulles = false cancelable = false eventPhase = 2 text = "Erreur # 2032:. Erreur flux URL: http://localhost:8080/_user/a/ad/admin/message.create.html" errorID = 2032] Blockquote

C'est le code que j'ai jusqu'à présent. Cela fonctionne très bien pour les requêtes GET.

 // Object that contains data of the message to be sent 
     var toSend:Object = { 
      "sakai:type": "internal", 
      "sakai:sendstate": "pending", 
      "sakai:messagebox": "outbox", 
      "sakai:to": "internal:"+sakaimain.gui.dgMessages.selectedItem["to"], 
      "sakai:subject": sakaimain.gui.dgMessages.selectedItem["subject"], 
      "sakai:body":"testreply with AIR GUI", 
      "sakai:previousmessage" : sakaimain.gui.dgMessages.selectedItem["id"] 
     }; 
     // Send message 
     // Create loader to load objects 
     var loader:URLLoader = new URLLoader(); 
     // Add event listeners for error and complete events 
     loader.addEventListener(Event.COMPLETE, replyMessageCompleteHandler); 
     loader.addEventListener(IOErrorEvent.IO_ERROR, replyMessageErrorHandler); 
     // Create the request to be done 
     var request:URLRequest = new URLRequest("http://localhost:8080/_user/a/ad/admin/message.create.html"); 
     request.requestHeaders = new Array(new URLRequestHeader("x-sakai-token", sakaimain.token)); 
     request.method = URLRequestMethod.POST; 
     request.data = toSend; 
     // Do the request 
     loader.load(request); 

Quelqu'un voit le problème ici?

Répondre

1

Le problème a été résolu. J'ai créé URLVariables à la place d'un objet pour passer à travers qui a corrigé le problème.

var urlv:URLVariables = new URLVariables(); 
urlv["sakai:type"] = "internal"; 
urlv["sakai:sendstate"] = "pending"; 
urlv["sakai:messagebox"] = "outbox"; 
urlv["sakai:to"] = "internal:"+sakaimain.gui.dgMessages.selectedItem["from"]; 
urlv["sakai:subject"] = sakaimain.gui.dgMessages.selectedItem["subject"]; 
urlv["sakai:body"] ="testreply with AIR GUI"; 
urlv["sakai:previousmessage" ] = sakaimain.gui.dgMessages.selectedItem["id"]; 
0

Vérifiez d'abord votre URL. C'est là que l'erreur de flux entre généralement en jeu. Assurez-vous que vous pouvez publier sur cette URL en dehors de votre application Flex. Si vous ne pouvez pas, vous obtiendrez probablement un meilleur message d'erreur.

Quelle langue côté serveur utilisez-vous? Avez-vous vraiment l'intention de publier dans un fichier .html?

Si l'URL est exacte, essayez d'envoyer une requête plus simple avec une seule paire clé-valeur.

Aussi, je ne sais pas, mais êtes-vous sûr qu'il est correct d'avoir: deux points dans le nom de variable de formulaire? Je suppose que cela pourrait dépendre de la langue côté serveur que vous utilisez.

+0

Merci pour votre aide! L'URL est certainement correcte, j'ai fait une demande de boucle et il posté comme il se doit. Une servlet Java est mappée sur cette URL (.html). J'utilise les deux-points car cela est attendu par l'arrière, donc je n'ai pas le choix moi-même. – PhysX