Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [résolu] poster des données vers une url

Envoyé par : hysah

Date : 31/10/2008 15:07

Bonjour, Je souhaiterais poster des données vers une url. J'ai utilisé le code si dessous. Les données sont poster vers une url php. Comment puis-je récupérer les données du post ? En plus lorsque je regarde les headers http j'ai un GET.

var num = window.opener.getBrowser().mPanelContainer.childNodes.length;
var reg = new RegExp(paramSAML['urlIDP'].replace(new RegExp("/","g"),"\/"),"g");
for (var i = 0; i < num; i++) {
   var b = window.opener.getBrowser().getBrowserAtIndex(i);
   try {
     var dataString = "authnResponse="+authnResponse+"signature="+xmlSignature;							
     const Cc = Components.classes;
     const Ci = Components.interfaces;
     var stringStream = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream);
     stringStream.setData(dataString, dataString.length);
     var postData = Cc["@mozilla.org/network/mime-input-stream;1"].createInstance(Ci.nsIMIMEInputStream);
     postData.addHeader("Content-Type", "application/x-www-form-urlencoded\n");
     postData.addContentLength = true;
     postData.setData(stringStream);
     b.loadURI(data['destination'], null, postData);
   }
}

# Re: poster des données vers une url

Envoyé par : Paul Rouget

Date : 31/10/2008 15:42

Pourquoi n'utilises tu pas XmlHttpRequest ?

# Re: poster des données vers une url

Envoyé par : hysah

Date : 31/10/2008 15:49

La page php sur laquelle les données postData sont envoyée doit etre affichée dans le navigateur. Je n'ai pas réussi à le faire avec XmlHttpRequest

# Re: poster des données vers une url

Envoyé par : hysah

Date : 03/11/2008 11:35

Comment-puis je accéder aux éléments authnResponse et signature posté depuis ma page php ? si je fais un echo $_POST'authnResponse' on me dit que ma variable n'existe pas. J'ai l'impression que le POST n'a pas fonctionné. Comment faire ?

Merci

# Re: [résolu] poster des données vers une url

Envoyé par : hysah

Date : 03/11/2008 17:28

La méthode LoadURI appelée depuis un onglet particulier ignore les données de POST et fait seulement un GET. Il semble qu'il faille utiliser la méthode loadURIWithFlags( uri, flags, referrer, charset, postData ).

D'où le code qui marche :

var num = window.opener.getBrowser().mPanelContainer.childNodes.length;
var reg = new RegExp(paramSAML['urlIDP'].replace(new RegExp("/","g"),"\/"),"g");
for (var i = 0; i < num; i++) {
  var b = window.opener.getBrowser().getBrowserAtIndex(i);
  try {
    var dataString = "authnResponse="+authnResponse+"signature="+xmlSignature;							
    const Cc = Components.classes;
    const Ci = Components.interfaces;
    var stringStream = Cc["@mozilla.org/io/string-input-stream;1"].createInstance(Ci.nsIStringInputStream);
    stringStream.setData(dataString, dataString.length);
    var postData = Cc["@mozilla.org/network/mime-input-stream;1"].createInstance(Ci.nsIMIMEInputStream);
    postData.addHeader("Content-Type", "application/x-www-form-urlencoded\n");
    postData.addContentLength = true;
    postData.setData(stringStream);
    b.loadURIWithFlags(data['destination'], null, null, "utf-8", postData);
  }
}

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.