2016-09-20 98 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