[英]Redirect Blocked by CORS Policy (React + SpringBoot)
我有一個基本的 react-app 在localhost:3000
上運行。
該 react-app 對localhost:9093
上的 SpringBoot 應用程序進行 axios 調用。 9093
上的應用程序使用 Spring MVC 將重定向返回到localhost:8183
上的另一個 SpringBoot 應用程序。 最后, 8183
上的應用程序將重定向返回到localhost:3000
上的 react-app。
當我嘗試這個時,我在我的 chrome 開發工具中收到以下消息:
Access to XMLHttpRequest at 'http://localhost:3000/?err_code=inv_otk' (redirected from 'http://localhost:9093/saml?email=a@a.com') from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
如果最終目的地和原點都在localhost:3000
,為什么我會遇到問題?
如果需要更多信息,請告訴我!
您可能需要在控制器上添加 @CrossOrigin 注釋。
@RestController
@RequestMapping("/users")
@CrossOrigin
public class UserController {
// doSomething();
}
Access-Control-Allow-Origin
錯誤來自一個 ajax 調用,該調用被名為OPTIONS
調用的瀏覽器撤銷。
瀏覽器在看到代碼想要調用具有當前來源的不同 URL 的端點時嘗試調用OPTIONS
調用以了解是否允許調用它。 所以當OPTIONS
調用不成功時,瀏覽器會阻止運行整個當前代碼。
對於解決方案,您應該嘗試一些方法來傳遞OPTIONS
調用。 其中之一是在您的 Webpack 配置中插入代理並傳遞所有OPTIONS
調用 200。
另一種方法是為后端項目中的每個OPTIONS
調用傳遞 200 個答案。
此外,您可以僅為開發區域關閉瀏覽器安全性。
您可以在應用程序類中使用此代碼。 它將允許您將在 React JS 中使用的所有端口。 這必須在 Spring Boot Application 類中完成。
/*****Cross Origin Implementation*****/
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedMethods("*")
.allowedOrigins("*")
.allowedHeaders("*")
.allowCredentials(true);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.