0. 问题说明
在某次升级之后,突然发现axios无法默认跨域了,暂时不确定是axios和tauri中谁的问题。
但是不管怎么说,先解决问题比研究为啥会出现问题优先。
既然有解决办法,那就先搞起来,再慢慢研究了。
1. 解决问题
1.1 解决思路
先翻官网的文档,找到一个文档。看起来没啥问题,但由于我们采用的是gql,因此还是有些东西需要调整。
官方的例子如下:
import { getClient, Body, ResponseType } from '@tauri-apps/api/http';
const client = await getClient();
const response = await client.post('http://localhost:3003/users', {
body: Body.json({
name: 'tauri',
password: 'awesome'
}),
// in this case the server returns a simple string
responseType: ResponseType.Text,
});
1.2 解决问题
实际把代码跑起来之后,发现官方的demo是有错的,至少到现在(2024年02月19日)是错的。
正确的代码是这样的:
const response = await client.post('http://localhost:3003/users',
Body.json({
name: 'tauri',
password: 'awesome'
}),
{responseType: ResponseType.Text});
进一步调整之后,我的最终代码是这样的
const gg = {
query: gql,
variables: params
};
const client = await getClient();
const response = await client.post(
GQL_API, Body.json(gg), { headers: { Authorization: 'Bearer: ' + jwt } });
return Promise.resolve(response.data.data);
实际编译测试之后,问题解决。
搞定收工(笑