微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

自定义NPM模块无法从localhost

如何解决自定义NPM模块无法从localhost

[更新]

我为自己的nodejs SDK创建了一个 NPM模块

我的SDK用于简化对我开发的服务器的访问。 另外,我开发了一个前端,可以导入SDK并通过它访问服务器。

正在开发中:

在本地开发时总结架构:

http://localhost:3000/frontend (w/ imported npm sdk) --> http://localhost:5000/api

在localhost开发中,我将其导入,并且一切正常,SDK占用了我开发的localhost服务器。 (在开发模式下,模块本身已被npm链接)。

同时进行测试:

SDK具有使其能够切换基础结构的功能,因此可以针对部署到生产(或登台)的服务器的先前版本进行测试。

在sdk.switchToInfrastructure()之后总结针对生产服务器的测试:

http://localhost:3000/frontend (w/ imported npm sdk) --> https://server.com/api

当我切换到https://server.com上的生产服务器时,从SDK发出的所有请求都被浏览器阻止:

GET https://server.com/api net::ERR_SSL_PROTOCOL_ERROR

我相信前端仍在HTTP上这一事实会导致问题。

如何防止这种情况发生?或任何有助于在多个已部署基础架构上测试其NPM模块的过程中的技巧。

[UPDATE 2]

其他信息:当我不通过npm导入我的SDK(我只是从本地文件导入sdk)时,根本没有问题,我可以从本地主机发出请求。

解决方法

如果您的服务器不支持CORS,浏览器将阻止Cross Origin Requests

这意味着,如果您的客户端(在localhost上运行)尝试获取production.server.com的端点,则默认情况下它将被阻止。

阅读有关CORS及其启用方法的文章。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。