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;