redirectattribute跨域后取不到值
时间: 2023-05-27 11:04:30 浏览: 54
如果您在使用 Spring MVC 中的 RedirectAttributes 重定向时,遇到了取不到值的问题,请先确认您是否已正确设置跨域访问的跨域资源共享(Cross-Origin Resource Sharing,CORS)相关设置。如果您已经设置了 CORS,但是跨域重定向仍然无法获取 RedirectAttributes 的值,您可以考虑以下可能的解决方法:
1. 将 RedirectAttributes 中的值以 url 参数的形式传递到下一个请求中,这样可以避免使用 session 或者 cookie 等需要共享状态的方式。
2. 在应用程序中使用 Spring Session 或者 Redis 等工具来共享状态,以保证在跨域请求之间可以传递值。
3. 使用 GET 请求而不是 POST 请求来进行跨域重定向,因为 GET 请求不需要进行预检请求(preflight request)。
希望以上建议可以帮助您解决问题。如果问题仍然存在,请提供更多的信息,以便我们对问题进行更进一步的分析和调查。
相关问题
springboot+vue 跨域后session获取不到
在跨域请求中,由于浏览器的安全策略限制,无法直接访问其他域名下的session信息,因此需要进行一些配置来解决该问题。
在Spring Boot中,可以通过配置`CorsFilter`来解决跨域问题,并允许浏览器发送带有凭据的请求(即携带session信息)。
首先,需要在后端代码中添加如下配置:
```java
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
final CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(true); // 允许发送带有凭据的请求
config.addAllowedOrigin("*"); // 允许来自所有域名的请求
config.addAllowedHeader("*"); // 允许发送所有头信息
config.addAllowedMethod("*"); // 允许发送所有请求方法
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
```
然后,在前端代码中需要设置`withCredentials`为`true`,来允许发送带有凭据的请求。例如,使用axios发送请求时,可以添加如下配置:
```javascript
axios.defaults.withCredentials = true;
```
这样就可以在跨域请求中获取到session信息了。
接口提交后,为什么取不到code的状态值
如果在接口提交后无法获取到状态码(code),可能有以下几个原因导致:
1. 请求没有成功:可能是由于网络连接问题、服务器故障或请求超时等原因导致请求没有成功。您可以通过查看浏览器的开发者工具或调试器中的网络请求信息来确定是否成功发送了请求。
2. 服务器没有返回状态码:有些服务器可能没有正确设置返回状态码,或者返回的响应不包含状态码。您可以检查服务器的响应内容,确保它包含了预期的状态码字段。
3. 跨域请求被阻止:如果您的请求是跨域请求(例如从一个域名向另一个域名发送请求),可能会遇到浏览器的跨域安全策略限制。在这种情况下,您可以使用CORS(跨域资源共享)或JSONP等技术来解决跨域问题。
4. 请求被重定向:有时候服务器会对请求进行重定向,导致最终获取不到预期的状态码。您可以检查请求的URL是否被重定向到了其他地址。
请仔细检查您的代码和网络请求,确保请求成功发送并且服务器返回了正确的状态码。如果问题仍然存在,请提供更多的细节和代码示例,以便我能够更准确地帮助您解决问题。