1、jsonp:只能get script标签只能get请求。
2、通过nginx来 配置
server{
listen 80;
server_name 域名;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://127.0.0.1:8080;
add_header Access-Control-Allow-Origin *; #解决跨域问题 * 所有域名 或者一个具体的域名
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
3、cors(IE 10 以下不支持) java服务端配置
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
//配置文件
@Configuration
public class 类名 {
@Bean
public CorsFilter corsFilter(){
// 1.添加CORS配置信息
CorsConfiguration config= new CorsConfiguration();
// 允许的域,不要写*,否则cookie就无法使用
config.addAllowedOrigin("域名1");
config.addAllowedOrigin("域名2");
// 是否发送cookie信息
config.setAllowCredentials(true);
//允许的请求方式
config.addAllowedMethod("OPTIONS");
config.addAllowedMethod("HEAD");
config.addAllowedMethod("GET");
config.addAllowedMethod("PUT");
config.addAllowedMethod("POST");
config.addAllowedMethod("DELETE");
config.addAllowedMethod("PATCH");
//设置有效时间
config.setMaxAge(时间值);
// 允许的头信息
config.addAllowedHeader("*");
//2.添加映射路径,拦截一切请求
UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
configSource.registerCorsConfiguration("/**", config);
//3.返回新的CorsFilter.
return new CorsFilter(configSource);
}
}
本文详细介绍了三种跨域问题的解决方案:jsonp的GET请求限制、nginx的配置调整以及CORS在Java服务端的应用。通过具体代码示例,展示了如何在不同场景下实现跨域访问。


被折叠的 条评论
为什么被折叠?



