2016-09-20 40 views
0

我使用node.fetch和react.js。正如文檔中提到的,我可以用這種方式緩存圖像緩衝區。節點提取網址,如何去掉主機名端口

var fileType = require('file-type'); 
fetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png') 
.then(function(res) { 
    return res.buffer(); 
}).then(function(buffer) { 
    fileType(buffer); 
}); 

但是因爲我的react.js在localhost:3000上運行,取回請求會自動在URL中追加:3000。在這種情況下,https://assets-cdn.github.com:3000 /images/modules/logos_page/Octocat.png。

但是這個URL無效,我該如何刪除端口?

+1

如果您傳遞完全限定的URL,'fetch()'不會添加端口。 – jfriend00

回答

1

當你有一個完整的URL與https://host/path時,不應該添加端口。

但是,如果它不爲你工作,出於某種原因,你想在URL中的某個端口,那麼你可以隨時添加它明確:

443 HTTPS協議的默認端口和此URL有效(但瀏覽器將在您單擊時隱藏端口號,就像它爲HTTP隱藏端口80一樣)。

+0

在明確添加端口之後,還有另一個錯誤:請求的資源上出現'No'Access-Control-Allow-Origin'標頭。 Origin'http:// localhost:3000'因此不允許訪問。' – Klyment

+0

@Klyment你在哪裏得到這個錯誤?在節點還是在反應? – rsp

+0

我找出原因。這是webpack的問題,向webpack.config.js添加一個頭文件將解決這個問題。 'header:{「Access-Control-Allow-Origin」:「http:// localhost:3000」,「Access-Control-Allow-Credentials」:「true」}' – Klyment