Script erreur method OPTIONS

cancel
Showing results for 
Search instead for 
Did you mean: 
viscere
Member II

Script erreur method OPTIONS

Bonjour,

     j'ai un webscript post que j'appelle par une page html classique (XmlHttpRequest POST). Lorsque j'utilise IE, le script s'exécute parfaitement (hormis que je n'ai pas le retour .ftl..), mais pas sous firefox, le serveur alfresco me renvoie l'erreur suivante :

10:59:09,897 INFO  [WebScriptRuntime::executeScript]   Caught exception & redirecting to status template: Script url /ui/compas/bean/compas does not support the method OPTIONS

Voici ma page html :

<html>
   <head>
   <script type='text/JavaScript'>
      function getXhr(){
                               var xhr = null;

            if(window.XMLHttpRequest){  // Firefox et autres
               xhr = new XMLHttpRequest();
            }
            else if(window.ActiveXObject){ // Internet Explorer
               try {
                         xhr = new ActiveXObject("Msxml2.XMLHTTP");
                     } catch (e) {
                         xhr = new ActiveXObject("Microsoft.XMLHTTP");
                     }
            }
            else { // XMLHttpRequest non supporté par le navigateur
               alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest…");
               xhr = false;
            }
            
            var xdoc;

            if( window.ActiveXObject && /Win/.test(navigator.userAgent) )
            {
              xdoc = new ActiveXObject("Microsoft.XMLDOM");

              xdoc.async = false;
            }
            else if( document.implementation && document.implementation.createDocument )
            {
              xdoc = document.implementation.createDocument("", "", null);
            }
         xdoc.load("data.xml");
        var dataToSend=xdoc;

         xhr.open("POST","http://localhost:8080/alfresco/service/ui/compas/bean/compas", true);
              xhr.setRequestHeader("Content-Type", "text/xml");                 
              xhr.send(dataToSend);
         xhr.onreadystatechange =function()
              {
               if (xhr.readyState == 4) {
                    alert("Post successful");
               }
              }
}

</script>
   </head>
   <body>
         <form  method="post">
            identifiant : <input name="idcomm"><br />
            date : <input name="date"><br />
            description : <input name="desc"><br />
            version : <input name="version"><br />
            flux : <input name="flux"><br />
            système emetteur : <input name="emetteur"><br />
            système destinataire : <input name="dest"><br />
            <input type="submit" name="submit" value="Go" onclick='getXhr()'>
         </form>      
   </body>
</html>

Merci d'avance pour vos réponse.

Laurent
5 Replies
bertrandf
Active Member

Re: Script erreur method OPTIONS

Bonjour,

Pourquoi faites vous une requete Ajax pour appeler votre webscript en POST ?
Un simple formulaire dans un webscript en GET (ou dans votre page HTML classique ) qui appelle votre webscript en POST sur le submit ne vous suffirait pas ?

Exemple :
Dans votre webscript en GET :
<form action="${url.full}" method="POST">
  identifiant : <input name="idcomm"><br />
  date : <input name="date"><br />
  description : <input name="desc"><br />
  version : <input name="version"><br />
  flux : <input name="flux"><br />
  système emetteur : <input name="emetteur"><br />
  système destinataire : <input name="dest"><br />
  <input type="submit" value="Go">
</form>  

Dans le webscript en POST, vous récupérer vos données avec args.nomDuParam
viscere
Member II

Re: Script erreur method OPTIONS

J'ai utilisé Ajax car j'ai besoin d'envoyer un fichier XML à mon webscript et je n'ai trouvé que XMLhttpRequest pour le faire..

 dataToSend = xdoc.load("data.xml");


xhr.send(dataToSend);
bertrandf
Active Member

Re: Script erreur method OPTIONS

Est-ce qu'il ne serait pas possible d'utiliser un input de type file et un formulaire de type multipart/form-data ?
Je dis ca mais je ne sais pas si dans votre cas cela peut vous aider.
Je laisse la parole aux personnes compétentes  Smiley Very Happy .
rivarola
Active Member

Re: Script erreur method OPTIONS

Bonjour,

Ca me semble très bien d'utiliser une requête Ajax, mais pourquoi de type OPTIONS ?
C'est assez exotique, et pas supporté par les WebScripts Alfresco qui ne connaissent que les méthodes GET et POST.
Pour que ça marche, deux solutions :
  • passer en POST

  • ajouter un paramètre alf_method=options dans l'URL d'appel pour qu'Alfresco considère cet appel comme si c'était une requête de type OPTIONS
viscere
Member II

Re: Script erreur method OPTIONS

Merci pour vos réponses.

Effectivement pourquoi faire simple quand on peut faire compliqué! :-)

L'utilisation du formulaire de type multipart/form-data me permet bien d'envoyer mon fichier xml à mon webscript. Ca marche maintenant sous firefox.

Merci!

PS : Pour la méthode OPTIONS je n'ai rien spécifier du tout, j'ai un web script en methode POST mais lors de l'appel avec firefox il me dit que la méthode OPTIONS n'est pas supportée…