我在互联网上搜索了很多,但没有找到任何对我的问题有帮助的东西。 我有一个java服务器和一个react客户端。我的服务器使用 jwt 进行身份验证并向我的客户端返回 token 。
当我尝试使用 post 方法发送数据时,我的客户端不发送 header ,因此我的服务器返回“未经授权”消息。我尝试从 Postman 和 ARC(高级休息客户端)发送相同的请求,它有效。
这是我的客户端代码:
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,但遇到了同样的问题。 另外,我的服务器在所有 Controller 类中都有 @CrossOrigin(origins = {"*"}) 注释。
我不知道我的问题是出在客户端还是服务器,以及为什么使用 Postman 和 ARC 工作。
最佳答案
您正在使用模式:no-cors
,它基本上删除了所有不是简单 header 的 header :https://developer.mozilla.org/en-US/docs/Web/API/Request/mode
您应该启用 CORS 并在服务器上允许您的域。
关于java - React 应用程序不向 java 服务器发送 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60779487/