天天看點

項目運作時一直發http://localhost:8080/sockjs-node/info?t=1462183700002請求

項目運作時一直發http://localhost:8080/sockjs-node/info?t=1462183700002請求

    • 【方案1】
    • 【方案2】
    • 【方案3】

server是webpack建立的,運作在localhost:8080,部署到伺服器後運作就報錯

項目運作時一直發http://localhost:8080/sockjs-node/info?t=1462183700002請求

網上的解決方案

【方案1】

這個問題:如果是在開發環境,應該是開發的時候網絡環境變更導緻,比如你切換無線網絡,導緻開發伺服器的IP位址換了,這樣開發伺服器會不知道如何确定通路源。開發環境中關閉npm dev server,然後重新npm run serve重新建構服務環境就可以了。

如果是生産環境,很大可能是應該是域名和ip映射出問題,重新開機node,檢查重新配置域名和ip映射就可以了。

【方案2】

如果你的浏覽器,與NPM伺服器,不是同一個機器(不是localhost),那麼會導緻這個報錯。

我搜尋了好久,才發現這個是可以在webpackjs裡配置的(即vue.config.js):

https://webpack.js.org/config...

module.exports = {
    devServer: {
        sockHost: 'demo.my-domain.com',
        disableHostCheck: true,
    }
}
           

【方案3】

首先sockjs-node是一個JavaScript庫,提供跨浏覽器JavaScript的API,建立了一個低延遲,全雙工的浏覽器和web伺服器之間通信通道。

如果你的項目沒有用到sockjs,vuecli3 運作npm run serve 之後network裡面一直調用一個接口:

http://localhost:8080/sockjs-node/info?t=1556418283950

方案:從根源上關閉此調用

1、node_modules/sockjs-client/dist/sockjs.js

2、代碼的1605行注釋

// self.xhr.send(payload);

ps:可在代碼開發完成後關閉,會同步關閉熱加載

個人是參考方案二,

繼續閱讀