【发布时间】:2021-03-02 15:56:32
【问题描述】:
所以我正在开发一个网络应用程序,但是当我将所有内容从本地主机移动到我托管的域时遇到了问题。目前,每当我尝试向后端发送任何发布请求时,都会收到以下错误:
Access to XMLHttpRequest at 'http://sweatguild.com:8080/api/auth' from origin 'http://sweatguild.com' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
我环顾四周,发现运行以下命令允许发布请求:
chrome.exe --user-data-dir="C://Chrome dev session" --disable-web-security
但这显然不是最优的。
这里是一些相关代码
发帖请求的角度:
getUserDetails(charName: string, password: string){
return this.http.post('http://sweatguild.com:8080/api/auth', {
charName,
password
}).subscribe(data =>{
if(data){
this.loggedInStatus = true;
localStorage.setItem('loggedIn', 'true');
localStorage.setItem('charName', charName);
this.router.navigate(['/']);
this.getPerms(charName);
}else{
this.loggedInStatus = false;
localStorage.removeItem('charName');
localStorage.removeItem('loggedIn');
localStorage.removeItem('admin');
window.alert("Incorrect login information");
}
})
}
在 Spring 应用程序中
@RestController
@CrossOrigin(origins = "http://sweatguild.com:80")
@RequestMapping("api/")
public class RosterController {
@Autowired
RosterRepository rosterRepository;
@PostMapping("/auth")
public boolean loginAuth(@RequestBody Roster roster){
System.out.println(roster.getCharName());
return rosterRepository.loginAuth(roster);
}
当我在 localhost 上运行时,所有这些都再次正常工作。任何和所有的想法都将不胜感激。
【问题讨论】:
标签: angular spring-boot cors