11486 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

je suis en train d'expérimenter avec la WordPress Rest Api pour intégrer des posts dans une page statique. Tout marche parfaitement, j'ai juste un petit soucis.

Lorsque l'Api renvoie les résultats au format JSON dans la page web, il y a deux informations que j'ai besoin de récupérer et qui sont contenues dans l'entête (hearder) de la page html, il s'agit du nombre de pages ( X-WP-TotalPages) et du nombre total de posts ( X-WP-Total).

Je ne sais pas comment récupérer ces deux données.
Je récupère la réponse Rest Api avec $.gestJSON avec une fonction de ce type


  /* ----------------------------------- */
  /*         gestion page Blog           */
  /* ----------------------------------- */
  if(document.getElementById('blog-long'))  {
    var restUrl = 'http://mon-url-du-site/wp-json/wp/v2/posts?_embed&page=1&per_page=3';
  
    $.getJSON(restUrl , function(posts) {
      posts.forEach(function(element) {  
        var dateFormated = formateDateRestApi(element.date);
        $("#blog-long-wrapper").append(buildBlogElement(element, dateFormated));
      });  // foreach
    }.bind(this));  // getJSON

  }  


mais il semble que $.getJSON ne récupère pas les entêtes, enfin pas que je sache..

Existe t-ildans javascript une fonction pour cela?

Merci
Modifié par lionel_css3 (23 Apr 2019 - 09:46)
J'ai trouvé, pour ceux que ça intéresse...

Il existe des fonctions associées à l'objet xhr créé
- xhr.getAllResponseHeaders
- xhr.getResponseHeader

Maintenant je peux récupérer le nombre de posts et calculer ma pagination....



  /* ----------------------------------- */
  /*         gestion page Blog           */
  /* ----------------------------------- */
  if(document.getElementById('blog-long'))  {
    var restUrl = 'http://mon-url-du-site/wp-json/wp/v2/posts?_embed&page=3&per_page=3';
    
    xhr = $.getJSON(restUrl , function(posts) {

      console.log(xhr.getAllResponseHeaders());
      console.log(xhr.getResponseHeader("X-WP-Total"));
      console.log(xhr.getResponseHeader("X-WP-TotalPages"));

      posts.forEach(function(element) {  
        var dateFormated = formateDateRestApi(element.date);
        $("#blog-long-wrapper").append(buildBlogElement(element, dateFormated));
      });  // foreach
    }.bind(this));  // getJSON


  }  




Modifié par lionel_css3 (23 Apr 2019 - 10:56)
Meilleure solution