web-dev-qa-db-fra.com

Les en-têtes provisoires sont affichés et les demandes en attente

j'ai un problème avec vue-resource provoquant un Les en-têtes provisoires sont affichés sur chrome, en utilisant Jquery d'autre part, travailler sans aucun problème

le problème ne se produit qu'avec chrome + vue-resource

Error

Lien de reproduction

Chrome 57.0.2987 Windows 7

je n'ai pas adblock ou Origin installé, et cela arrive même en mode invité sur chrome

un simple appel établi avec setInterval

new Vue({

  el: '#main',

  data: {
    summary: null
  },
        methods: {
            updateSummary: function() {
      /*
                $.post( "summary.php", function( data ) {
                    if(typeof response.body.summary != 'undefined'){
                        this.summary = response.body.summary;
                    }
                });
        */
                this.$http.post('summary.php').then(function(response) {
                    if(typeof response.body.summary != 'undefined'){
                        this.summary = response.body.summary;
                    }
                });
            }
      },
        mounted: function () {
            this.updateSummary();

            setInterval(function () {
                this.updateSummary();
            }.bind(this), 2000);
        }
});

https://jsfiddle.net/7vo2s8z3/1/

Étapes à reproduire

cela se produit généralement lorsque je laisse la page ouverte pendant quelques heures

Qu'attend-on?

une réponse de 200 codes avec le contenu servi

Que se passe-t-il réellement?

je reçois une demande avec ces en-têtes

URL de demande: http://127.0.0.1:8080/monitor/summary.php Politique de référent: en-têtes de demande no-referrer-when-downgrade

Les en-têtes provisoires sont affichés Accepter: application/json, text/plain, / Content-Type: application/json; charset = utf-8 Origine: http://127.0.0.1:808 Référent: http://127.0.0.1:8080/monitor/ User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, comme Gecko) Chrome/57.0.2987.133 Safari/537.36 X-Requested-With: XMLHttpRequest

et en regardant chrome: // net-internals/# events la cause de l'échec est

85487: URL_REQUEST http://127.0.0.1:8080/monitor/summary.php Heure de début: 2017-04-18 09: 38: 43.826

t = 29028 [st = 0] + REQUEST_ALIVE [dt = 24184] -> priority = "MEDIUM" -> url = " http://127.0.0.1:8080/monitor/summary.php = "t = 29029 [st = 1] + DELEGATE_INFO [dt = 24183] -> delegate_blocked_by =" RedirectToFileResourceHandler "t = 53211 [st = 24183] ANNULÉ -> net_error = -2 (ERR_FAILED) t = 53212 [st = 24184] -REQUEST_ALIVE

10
Tarik

Je crois que cela se produit lorsque la demande réelle n'est pas envoyée, généralement lorsque vous chargez une ressource en cache.

Fondamentalement, vous avez envoyé une demande POST au port 8080, ce qui a provoqué le message "ATTENTION: les en-têtes provisoires sont affichés", comme indiqué dans l'inspecteur, puis il semble que la demande ait été bloquée tous ensemble.

Sur cette base, une solution possible consiste à configurer nginx pour transmettre par proxy la demande du port SSL habituel de 443 au port SSL de noeud de 8080 (le noeud doit être sur un port plus élevé car il ne peut pas être exécuté en tant que root dans prod). Je suppose que Chrome n'aime pas les demandes SSL vers des ports SSL non conventionnels, bien que je convienne définitivement que leur message d'erreur pourrait être plus spécifique.

2
lax1089