私はvue-resourceに問題があり、Chromeに暫定ヘッダーが表示されます、一方でJqueryを使用すると問題なく動作します
問題はchrome + vue-resourceでのみ発生します
Chrome 57.0.2987 Windows 7
adblockまたはOriginがインストールされていません。Chromeのゲストモードでも発生します
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:application/json; charset = utf-8 Origin: http://127.0.0.1:808 Referer: 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
chrome:// 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] CANCELED-> net_error = -2(ERR_FAILED)t = 53212 [st = 24184] -REQUEST_ALIVE
これは、実際のリクエストが送信されない場合、通常はキャッシュされたリソースをロードしている場合に発生すると考えています。
基本的に、ポート8080にPOSTリクエストを送信しました。これにより、インスペクターに表示される「注意:仮ヘッダーが表示されます」というメッセージが表示され、リクエストがすべて一緒にブロックされたようです。
それに基づいて、可能な1つの解決策は、通常のSSLポート443から8080のノードSSLポートにリクエストをプロキシで渡すnginxをセットアップすることです(prodでrootとして実行できないため、ノードは上位ポートにある必要があります)。 Chromeは、型破りなSSLポートへのSSL要求を好まないが、エラーメッセージがより具体的である可能性があることに私は間違いなく同意する。