React 应用程序未将 headers 发送到 java 服务器

React app not sending headers to java server

我在网上搜索了很多,但没有找到对我的问题有帮助的东西。 我有一个 java 服务器和一个反应客户端。我的服务器正在使用 jwt 进行身份验证,returns 我的客户端的令牌。

当我尝试使用 post 方法发送数据时,我的客户端没有发送 headers,因此我的服务器 returns 发送了一个 "Unauthorized" 消息。我尝试从 Postman 和 ARC(Advanced Rest Client)发送相同的请求并且它有效。

这是我的客户端代码:

fetch(url, {
            method: 'POST',
            crossDomain: true,
            mode: 'no-cors',
            body: JSON.stringify(data),
            headers: {
                'Authorization': 'Bearer ' + 'token generated from fiddler after running auth',
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            }
        })
            .then(response => response.json())
            .then(responseJson => {
                console.log(responseJson);
            });

我也尝试过使用 axios,但我遇到了同样的问题。 此外,我的服务器在所有控制器中都有 @CrossOrigin(origins = {"*"}) 注释 类.

我不知道我的问题是与客户端有关还是与服务器有关,也不知道为什么要使用 Postman 和 ARC。

您使用的 mode: no-cors 基本上去除了所有不简单的 headers headers: https://developer.mozilla.org/en-US/docs/Web/API/Request/mode

您应该启用 CORS 并在服务器上允许您的域。