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 并在服务器上允许您的域。
我在网上搜索了很多,但没有找到对我的问题有帮助的东西。 我有一个 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 并在服务器上允许您的域。