6
votes

Une erreur s'est produite lors du transport ou du traitement de cette demande. Code d'erreur = 10, chemin = / wardeninit

J'essaie de transmettre un objet (contenu d'une ligne de feuille) à un modèle de script d'application. Vous pouvez voir la ligne dans la capture d'écran.

 entrez la description de l'image ici

ma fonction dans le script des applications contient:

       console.log('row');
       var myObj = JSON.parse(jsonRow);
       console.log(myObj['CONVERSATION']);

L'instruction logger produit:

<!DOCTYPE html>
<html>
<head>
  <base target="_top">
  <script>
    // Prevent forms from submitting.
    function preventFormSubmit() {
      var forms = document.querySelectorAll('forms');
      for (var i = 0; i < forms.length; i++) {
        forms[i].addEventListener('submit', function(event) {
          event.preventDefault();
        });
      }
    }
    window.addEventListener('load', preventFormSubmit);

    function handleFormSubmit(formObject) {
      // the output from form goes to processDocBuildHtml
      google.script.run
          .withSuccessHandler(updateUrl)
          .processRowPopupHTML(formObject);
    }

    function updateUrl(url) {
      var div = document.getElementById('output');
      div.innerHTML = '<a href="' + url + '">Sent!</a>';
    }
  </script>
</head>

<body>
  <form id="myForm" onsubmit="handleFormSubmit(this)">

    <div>
      <label for="optionList">Click me</label>
      <select id="optionList" name="email">
        <option>Loading...</option>    
      </select>
    </div>

    <br>
    <div>
    </div>

    <br>
    <div>
      <textarea name="message" rows="10" cols="30">
The cat was playing in the garden.
      </textarea>
    </div>
    <div id="textboxes"></div>

    <div id="insert"></div>

    <input type="submit" value="Submit" />
  </form>

  <div id="output">
  </div>

  <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
  <script src="//rawgithub.com/indrimuska/jquery-editable-select/master/dist/jquery-editable-select.min.js"></script>
  <link href="//rawgithub.com/indrimuska/jquery-editable-select/master/dist/jquery-editable-select.min.css" rel="stylesheet">

  <script>
  function getConversations() {
    var jsonRow = <?= row ?>; //PASSED IN JSON
    console.log('row');
    var myObj = JSON.parse(jsonRow);
    console.log(myObj['CONVERSATION']);

    return myObj['CONVERSATION'];
  }
  </script>
</body>

Mon Rowpopup.html est:

 sendableRow {"Index":true,"Timestamp":"2019-02-12T21:09:14.000Z","FROM":222222,"CONVERSATION":"THIS IS A TEST","ME":"","relativeRow":14,"absoluteRow":15}

Quand je lance ceci, je vois:

 entrez la description de l'image ici

Ce qui montre un problème avec" warden ".

De plus, je ne vois pas le résultat attendu données envoyées à la console en:

var sendableRows = rows.filter(function (row) { //ONLY CHECKED ROWS.
  return row['Index'] == true;
});  
var sendableRow = sendableRows[0];
Logger.log('sendableRow '+ JSON.stringify( sendableRow));

var html = HtmlService.createTemplateFromFile('RowPopup');
html.row = JSON.stringify(sendableRow);
var h =html.evaluate();

SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
  .showModalDialog(h, 'Create Documents');

Qu'est-ce que je fais de mal?


1 commentaires

Le code côté serveur n'est pas complet et les codes côté client ont plus de code que nécessaire pour reproduire le problème :) Réf. exemple reproductible minimal .


4 Réponses :


1
votes

Vous n'avez déclaré que la fonction getConversations . Il n'est pas exécuté avant de l'appeler () . Pour exécuter directement au chargement, essayez

(function getConversations(){})()


0 commentaires

8
votes

Votre code côté client n'appelle jamais getConversations , c'est pourquoi vous ne le voyez pas sur la console. Parmi les nombreuses façons de le faire, vous pouvez ajouter un IIFE pour appeler cette fonction en ajoutant ce qui suit entre les balises

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    Hello world!
  </body>
</html>


D'autre part, le message d'erreur référencé sur la console Chrome Developers Tools se produit même avec le code le plus simple comme celui-ci

function myFunction(){
  var html = HtmlService.createHtmlOutputFromFile('index');
  SpreadsheetApp.getUi().showModalDialog(html, 'Test')
}
(function (){getConversations()}());

Donc ce n'est vous, c'est Google


0 commentaires

0
votes

J'ai eu un problème similaire. Mais dans mon cas, la plupart de mes utilisateurs n'avaient pas le problème. Juste quelques utilisateurs sur certains PC. Ensuite, j'ai découvert que, dans ces cas (environ 10%), s'ils installaient Firefox et exécutaient l'application, tout fonctionnait très bien. C'était donc ma solution: suggérer Firefox lorsque ce comportement s'est produit.


0 commentaires

0
votes

Je sais que cette réponse n'est pas liée à cet OP et que l'endroit où je devrais publier n'est pas approprié, mais pour les autres personnes qui atteindront cette page à l'avenir, je laisse une réponse ici car j'ai eu du mal à résoudre des problèmes similaires.

Je pense que cette erreur signifie que nous ne pouvons pas nous connecter à partir d'un fichier HTML aux scripts écrits dans Script Editor.

Donc, fondamentalement, vous pouvez ignorer ce message d'erreur (peut-être. Sinon, indiquez-moi la fonctionnalité correcte.)

Pour moi, l'erreur s'est produite lors de l'exécution de google.script.run.myFunction () . Donc, au début, j'ai pensé que l'erreur empêchait cette exécution. Cependant, l'erreur n'était absolument pas liée à cette exécution. C'était un autre problème et j'ai détecté pourquoi mon problème s'était produit en utilisant withFailureHandler (onFailure) . Il émet un message d'erreur. (Pour plus d'informations, consultez https://stackoverflow.com/a/33008218/3077059 )

Comme le dit M. Rubén "Donc ce n'est pas vous, c'est Google", cette erreur peut être rejouée, facilement. Ne soyez pas intrigué par ce message. Le message d'erreur ("Il y a eu une erreur lors du transport ou du traitement de cette demande. Code d'erreur = 10, Path = / wardeninit") est inutile, je pense. Le grand message de Ruben est le suivant -> https://stackoverflow.com/a/54756933/3077059


0 commentaires