我有一个运行在https://localhost:8080上的ReactJS应用程序,我想将数据发布到运行在https://localhost:8443上的Spring Boot后端应用程序中,但是当我尝试发布数据时。我的浏览器控制台:
TypeError:“尝试获取资源时出现NetworkError。” 跨域请求被阻止:同源策略禁止读取https://localhost:8443/api/ ...上的远程资源(原因:CORS请求未成功)。
我的Spring Boot应用程序未使用Spring Security。我通过this教程启用了HTTPS。我使用HTTPS=true npm start
运行ReactJS应用程序,并更改了package.json中的"start": "PORT=8080 react-scripts start"
之类的React应用程序端口
这是我的application.properties:
server.ssl.key-store-password = password
server.ssl.key-store-type = PKCS12
server.ssl.key-alias = tomcat
server.ssl.enabled=true
这是尝试从React调用REST API的方法:
fetch('https://localhost:8443/api/..., {
method: 'POST'
}).then((data) => {
if (data.ok) {
this.setState({
response: data })
}
})
.catch(console.log);
这是我的@RestController:
@RestController
@RequestMapping("/api")
public class MessageReceiverResource {
@CrossOrigin(origins = "https://localhost:8080")
@PostMapping
public Response receiveMessages(@RequestBody Request request){
...
return response;
}
}
在启用HTTPS之前,此解决方案都可以正常工作。
答案 0 :(得分:0)
解决方案是将以下行添加到package.json:"proxy": "https://localhost:8443",