Infos
    #42198
    François LE FEVRE (flefevre79)
    2025-03-07 18:48
    2025-03-07 18:48
    43874
    Details
    Call REST API

    Dear all, I am not an expert of javascript nor tuleap rest api. I would like to call the followinf snipeed of code but i get

    {"error":"Referer doesn't match host. CSRF tentative ?"}

    same behavior when i open in my chrome browser directly the url https://tuleap.mycompany/api/tracker_reports/15145/artifacts?with_unsaved_changes=false&values=all&output_format=nested&limit=10

    Any idea why? Thanks

    my javascript file:

    const MYTULEAP_TOKEN = "tlp-k1-xxxxxxxxxxxxxxx";
    const headersTuleap = MYTULEAP_TOKEN ? { Authorization: `token ${MYTULEAP_TOKEN}` } : {};
    
    
    
    
    // Fonction pour charger les User Stories depuis l'API
    function fetchUserStories() {
      const apiUrl = "https://tuleap.mycompany/api/tracker_reports/15145/artifacts?with_unsaved_changes=false&values=all&output_format=nested&limit=10"
      // Récupérer l'élément qui affiche "Chargement"
      const userStoryInfoElement = document.getElementById("userstory-info");
      const tableBody = document.querySelector("#user-story-table tbody");
    
      // Afficher un message de chargement
      userStoryInfoElement.innerHTML = "<p>Chargement des informations Userstory...</p>";
    
      // Appel à l'API
      fetch(apiUrl, { headersTuleap })
          .then(response => response.json())
          .then(data => {
              // Masquer le message de chargement
              userStoryInfoElement.innerHTML = "";
              
              // Remplir le tableau avec les données récupérées
              data.forEach(userStory => {
                  const row = document.createElement("tr");
    
                  // Créer les cellules pour chaque User Story
                  const idCell = document.createElement("td");
                  const titleCell = document.createElement("td");
                  const descriptionCell = document.createElement("td");
    
                  // Assigner les valeurs
                  idCell.textContent = userStory.id;
                  titleCell.textContent = userStory.title;
                  descriptionCell.textContent = userStory.description;
    
                  // Ajouter les cellules à la ligne
                  row.appendChild(idCell);
                  row.appendChild(titleCell);
                  row.appendChild(descriptionCell);
    
                  // Ajouter la ligne au tableau
                  tableBody.appendChild(row);
              });
          })
          .catch(error => {
              // Gérer les erreurs
              console.error("Erreur lors de la récupération des User Stories:", error);
              userStoryInfoElement.innerHTML = "<p>Une erreur est survenue lors du chargement des informations.</p>";
          });
    }
    
    // Appeler la fonction lors du chargement de la page
    window.onload = fetchUserStories;
    
    
    
    API
    16.4
    Empty
    • [ ] enhancement
    • [ ] internal improvement
    Empty
    Stage
    Empty
    New
    Empty
    Attachments
    Empty
    References
    References list is empty