我正在开发一个 NodeJS 应用程序,该应用程序在 https://localhost:port
上运行服务器并使用自签名证书(因为没有供应商为本地主机提供证书)。我正在从我的网站使用 AJAX 调用来访问本地主机并将数据发送到 NodeJs 应用程序。由于预期的 INSECURE_CONTENT,我的电话被阻止了。我想知道我们是否有任何解决方法?
最佳答案
(请参阅下面的更新)
解决方法是在浏览器级别启用它。这也应该允许 AJAX 调用。
对于 Chrome
- 在 chrome 中转到此 url ( chrome://flags/#allow-insecure-localhost )
- 点击启用。
- 然后您必须重新启动您的 chrome 浏览器,这样更改可能会影响。
火狐浏览器
- 在 firefox 中转到您的本地主机。它应该向您显示警告。
- 点击高级
- 点击添加异常(exception)...
- 会出现新的弹出窗口,点击获取证书
- 验证复选框显示“永久存储此异常”
点击“确认安全异常(exception)”。请参阅下图。
更新:
根据 op 的评论,更新后的答案如下:
( Reply to this comment ) 这个简单的 hack 是在您的 Node 应用程序中有一个 proxy
路由。创建类似 http://localhost/proxy?yourwebsites_api/getData
的路由。在 Node 服务器中,代理路由将从您的网址获取 GET
参数并访问您的网站服务器。并将返回相同的响应。就像您在 c#
中使用 HttpWebRequest 所做的那样或 HttpClient或者在 PHP
中使用 curl .
关于node.js - 使用 Ajax 通过 https 使用自签名证书访问本地主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45949507/