【问题标题】:How can I convert this Curl call to Javascript/React?如何将此 Curl 调用转换为 Javascript/React?
【发布时间】:2020-11-06 17:57:57
【问题描述】:

我有一个如下所示的 curl 调用:

curl \
-v \
-X POST \
-k \
-H 'Content-Type: application/json' \
-d '{
    "mydata": "XXXXX"
}' \
"https://localhost:11000/myEndpoint"

它有效。我收到 200 条回复。但是当我删除 -k 标志时,它会失败并出现以下错误:

curl: (60) SSL 证书问题:自签名证书

所以我知道-k 标志是必需的。

现在我正在尝试将此 curl 转换为 Javascript/React。但是当我在 React 中这样做时,它会失败:

const response = await fetch(
  'https://localhost:11000/myEndpoint',
  {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({ mydata: 'XXXXX' })
  },
)

这是浏览器控制台中的错误:

POST https://localhost:11000/myEndpoint net::ERR_CERT_AUTHORITY_INVALID

我相信这个错误是因为 Javascript/React 没有做相当于 -k 的操作。 如何让它模仿 Curl 的 -k 行为?

【问题讨论】:

  • @johnSmith 那是关于 Node.js,而不是浏览器。
  • 另一种选择是 ajaxcall 调用托管在您的域上的服务器端脚本,该脚本执行 curl 请求并返回响应

标签: javascript reactjs curl ssl-certificate


【解决方案1】:

没有办法让fetch()(或XHR,或任何其他)调用直接执行-k(也称为--insecure)所做的事情。

您需要告诉您的浏览器信任该自签名证书。

一般来说,您可以通过导航到 https://localhost:11000/ 并接受“是的,我知道我在做什么,我知道这是不安全的”提示来为单个会话执行此操作,这很可能出现。

对于更永久的解决方案,您可以在网上搜索例如“信任自签名证书您的浏览器”...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-03
    • 1970-01-01
    • 2021-08-22
    • 2017-01-04
    • 2017-10-21
    • 2012-05-10
    • 1970-01-01
    相关资源
    最近更新 更多