Mac和iOS上Safari的React和Axios GET请求问题

eyh26e7m  于 2022-12-12  发布在  iOS
关注(0)|答案(2)|浏览(261)

我试图使用Axios做一个API请求,它在每一个windows'和Android浏览器中工作,但在MacOs Safari(但在Chrome中工作正常)或任何iOS浏览器上不工作。
在相同的代码中,我对相同的API(不同的端点)进行了另一次调用,它在Safari和IO中完全没有问题。
当我console.log抛出的异常原来是一个网络错误。
我不认为这是一个CORS的问题,因为它在另一个浏览器上工作。
我的要求:

try {
  const response = await api.get(
    "/precos/get",
    {
      headers: {
        'Content-Type': 'application/json'
        'token': getToken()
      }
    }
  );

  this.filtraProdutoPorTabela(response.data.data);
} catch (err){
  // do something with the error
}

控制台错误:
网络错误{“接受”:“应用程序/json,文本/纯文本,/“,“此.状态类型”:“应用程序/json”,“令牌”:“e... c”},“基本URL”:“基本URL“,“转换请求”:[null],“转换响应”:[null],“超时”:0,“xsrfCookieName”:“XSRF-TOKEN”,“xsrfHeaderName”:“XSRF-TOKEN”,“最大内容长度”:-1,“httpsAgent”:{}}

4sup72z8

4sup72z81#

唯一的问题,这将导致这一点,我能想到的是,你肯定有你的计算机上的链接设置为,例如:网站
这很好,因为你在同一台机器上做它,但当你在移动的设备或任何其他设备上尝试它时,当浏览器试图点击该路径时,它会看到url的localhost部分,它指向自己,而不是你的实际机器。
要解决这个问题,你必须把你的机器的ip地址和端口,而不是字面文本“localhost”。
来自:
发送至:http://192.168.1.23:500/api/posts http://{您的IP地址}:5000/API/posts

93ze6v8z

93ze6v8z2#

当我自己调查这个问题时,我遇到了这个帖子:link not working in Safari
由于某种原因,Safari上的链接事件未被触发。我有我的 onClick 操作,它触发了 axios 调用,绑定到html****标记。Safari没有让 axios 正确执行请求。
正在添加:
事件.预防默认值()
单击时标记调用的函数解决了该问题。

相关问题