2009-09-29 9 views
0

J'utilise Prototype 1.6.1 pour créer un POST à ​​une page. Les données POST sont un objet JSON complexe. Quelqu'un peut-il me dire comment sur la page d'accueil, je peux accéder au corps des premières données POSTée?lecture personnalisée corps POST au sein ASP

la page Envoi:

myObject = {"key":"val", 
      "has many":{"key1":"val1", 
         "key2":"val2"} 
      } 

new Ajax.Request('Worker.asp', 
{ 
    method:"post", 
    postBody:Object.toJSON(myObject), 
    onSuccess: function(transport){ 
    var response = transport.responseText || "no response text"; 
    alert("Echo'ing back what you sent: \n\n" + response); 
}, 
onFailure: function(){ alert('Something went wrong...') } 
}); 

Alors que la page est d'envoyer. Fait un objet, et une demande. Je l'ai utilisé Firebug pour faire en sorte que les données POST sont envoyées ressemble à ce que je veux ressembler.

maintenant sur la page cible, je vais avoir du mal à accéder aux données affichées. J'ai essayé ce qui suit, et cela n'a pas fonctionné.

page d'accueil:

<% Response.BinaryWrite(Request.BinaryRead(Request.TotalBytes)) %>

Mais j'obtiens l'erreur du serveur 500. Donc, fondamentalement, je voudrais savoir comment je peux utiliser ce que je POSTé. Toute aide est grandement appréciée!

Répondre

1

Ok, je pense que je l'ai: je tentais de me forcer sur le pauvre POST, quand tout ce qu'elle voulait vraiment devait être traité comme une dame. Au lieu de faire mes données POST être juste JSON « texte », je fais un paramètre:

new Ajax.Request('StageWorker.asp', 
{ 
method:"post", 
//postBody:Object.toJSON(AllStageInfo), //<-- THIS DIDN'T WORK 
parameters:{alldata:Object.toJSON(AllStageInfo)}, //<-- THIS DID 
onSuccess: function(transport){ 
    var response = transport.responseText || "no response text"; 
    alert("Success! \n\n" + response); 
    }, 
onFailure: function(){ alert('Something went wrong...') } 
}); 

Et la page d'accueil était tout simplement:

Response.Write(Request.Form("alldata")) 

Et tada, la demande m'a alertés de retour avec ce que j'avais envoyé.

Questions connexes