在 REACT 中,GET http:/xxxx 401 (Unauthorized)/ (CORS) : For "localhost"

In REACT, GET http:/xxxx 401 (Unauthorized)/ (CORS) : For "localhost"

正在尝试使用 axios.get 方法调用以下 API。我使用 Moesif CORS google 扩展绕过了 CORS。
API 需要令牌才能使用 POSTMAN 提取结果。

插入有效令牌:尽管 CORS 扩展已启用,但出现 CORS 错误。
CORS Error
没有令牌:同时启用 401 Unauthorized with CORS 扩展。
401 Unauthorized

我有点疑惑,是我的token未授权问题还是这里的CORS问题?有人可以建议吗?但是,如果我调用另一个不需要令牌的 API,我可以在启用 CORS 扩展的情况下毫无问题地获得结果。

在这里分享我的示例代码:

const tokenStr = 'abc1234'; // example
const config = {
  headers: { Authorization: `Bearer ${tokenStr}` }
};

let dcqoapi = 
"http://quote.dellsvc/v3/quotes?number=" + Quote + "&version=" + Version;

  const calldcqoapi = () => { //assign a variable for a call function
        Axios.get (dcqoapi,config).then(
          (response) => {
          console.log(response);
        })

  };

您需要更科学地跟踪 HTTP 响应 - 使用浏览器工具或诸如 Charles 代理之类的工具。请记住,API 有时实施不当,并且 return CORS headers 不正确。

有关方法,请参阅 Step 15 of my blog post。在所有这些情况下,您是否都收到了对浏览器工作的响应 headers?

  • 在没有访问令牌的情况下调用 API
  • 使用无效的访问令牌调用 API
  • 使用有效的访问令牌调用 API

问题已通过从 Chrome 禁用网络安全得到解决。以下是我采取的以下操作:[为本地主机工作]

  1. 在桌面上创建快捷方式。
  2. Right-click 在快捷方式上,然后单击“属性”。
  3. 编辑目标属性。
  4. 设置为“C:\Program Files (x86)\Google\Chrome\Application\chrome.exe” --disable-web-security --user-data-dir="C:/ChromeDevSession “
  5. 打开 Google chrome(您应该会在页面顶部看到消息“disable-web-security”)
  6. 运行 你的应用程序
  7. 复制您的本地主机 URL 并将其粘贴到 Chrome
  8. 现在使用 headers 标记调用 API 非常完美。

通过执行上述步骤,我们已经完全绕过了包括 CORS 在内的所有安全措施。因此,不再需要 Moesift CORS
当我使用 POSTMAN 调用 API 和 Headers.
对我的代码进行了一些小改动,而不是放置 'Bearer' 并且我已将其删除。
'bearer' 用于授权。 Headers 不考虑不记名令牌,它只是一个密钥,所以我们不应该为 POSTMAN headers.

输入 'bearer'
let config = {

  headers: { Authorization: 'PlACE YOUR TOKENS HERE'}

};

let dcqoapi =
"https://quote.dellsvc/v3/quotes?number="+ Quote +"&version=" + Version // set DCQO API

const calldcqoapi = () => { //assign a variable for a call function
    Axios.get (dcqoapi,config).then(
      (response) => {
      console.log(response);
})

};