Предварительные заголовки показаны и ожидающие запроса

У меня проблема с vue-ресурсом, вызывающая предварительные заголовки на хром, с другой стороны, JQuery работает без проблем

проблема возникает только с хром + vue-resource

Error

Воспроизведение ссылки

Chrome 57.0.2987 Windows 7

У меня нет установленного блока или источника, и это происходит даже в гостевом режиме на хроме.

простой набор вызовов с 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/

Шаги для воспроизведения

Обычно это происходит, когда я оставляю страницу открытой на несколько часов

Что ожидается?

ответ кода 200 с содержимым, обслуживаемым

Что на самом деле происходит?

Я получаю запрос с этими заголовками

URL-адрес запроса: http://127.0.0.1:8080/monitor/summary.phpПолитика перенаправления: no-referrer-when-downgrade Заголовки запросов

Отображаются предварительные заголовкиAccept: application/json, text/plain,/ Content-Type: применение /JSON; кодировка = UTF-8 Происхождение: http://127.0.0.1:8080Referer: http://127.0.0.1:8080/monitor/User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, например, Gecko) Chrome/57.0.2987.133 Safari/537.36 X-Requested-With: XMLHttpRequest

и глядя на хром://net-internals/# events причина сбоя

85487: URL_REQUEST http://127.0.0.1:8080/monitor/summary.phpВремя начала: 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] ОТМЕНА                         - > net_error = -2 (ERR_FAILED) t = 53212 [st = 24184] -REQUEST_ALIVE

Ответ 1

Я считаю, что это происходит, когда фактический запрос не отправляется, обычно, когда вы загружаете кэшированный ресурс.

В основном вы отправили запрос POST на порт 8080, который вызвал сообщение "ВНИМАНИЕ: предварительные заголовки показаны", как это видно в инспекторе, а затем кажется, что запрос был заблокирован все вместе.

Исходя из этого, одним из возможных решений является настройка nginx для передачи по доверенности запроса от обычного порта SSL 443 на порт SSL узла 8080 (узел должен находиться на более высоком порту, поскольку его нельзя запустить от имени root в prod). Я предполагаю, что Chrome не нравится запросы SSL к нетрадиционным портам SSL, хотя я определенно согласен, что их сообщение об ошибке может быть более конкретным.