浏览器针对ajax的几种请求方式和解决跨域问题

1.几种请求方式
常见的请求方式:@RequestMapping
Spring4.3中引进了@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping,来帮助简化常用的HTTP方法的映射,并更好地表达被注解方法的语义。

@RequestMapping如果没有指定请求方式,将接收Get,Post,Head,Options等所有的请求方式

@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。
使用场景:Get请求  适用于查询单个对象

@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。
使用场景:Post请求  适用于更新单个对象或者元素时

@PatchMapping是一个组合注解,是@RequestMapping(method = RequestMethod.PATCH)的缩写。
使用场景:Patch请求  适用于添加和删除多个对象时

@DeleteMapping是一个组合注解,是@RequestMapping(method = RequestMethod.DELETE)的缩写。
使用场景:Delete请求  适用于删除单个对象时

@PutMapping是一个组合注解,是@RequestMapping(method = RequestMethod.PUT)的缩写。
使用场景:Put请求  适用于添加单个对象或者元素时

2.跨域问题:只要域名(ip)和端口号有一样不同,那么都是跨域。
前后段分离的项目,在各自的服务器中启动
由于: 域名不同 www.jd.com 与 www.taobao.com
域名相同,端口不同 www.jd.com:8080 与 www.jd.com:8081
二级域名不同 item.jd.com 与 miaosha.jd.com
所以存在跨域问题,服务器之间发送请求是2次,一次是访问请求(我可以访问你吗),一次是响应请求(可以或者拦截),ajax(发送请求)向不同 域 请求数据时,浏览器只拦截ajax请求,造成跨域请求的拦截(浏览器拦截的)。

解决跨域问题:
2.1 使用Nginx(是一个服务器)的反向代理处理

2.2 使用Cross拦截器解决:实质是 让后台告诉浏览器前段可以通过哪些请求方式访问我(后台)。
	在SpringBoot管理的Mavun项目中 写一个类声明为配置类:
	如下
	@Configuration
	public class GlobalCorsConfig {
	    @Bean
	    public CorsFilter corsFilter() {
	        //1.添加CORS配置信息
	        CorsConfiguration config = new CorsConfiguration();
	        //1) 允许指定的服务来访问
	        config.addAllowedOrigin("http://127.0.0.1:8081");
	        config.addAllowedOrigin("http://localhost:8081");
	        //2) 是否发送Cookie信息
	        config.setAllowCredentials(true);
	        //3) 允许的请求方式
	        config.addAllowedMethod("OPTIONS");
	        config.addAllowedMethod("HEAD");
	        config.addAllowedMethod("GET");
	        config.addAllowedMethod("PUT");
	        config.addAllowedMethod("POST");
	        config.addAllowedMethod("DELETE");
	        config.addAllowedMethod("PATCH");
	        // 4)允许的头信息
	        config.addAllowedHeader("*");
	        //2.添加映射路径,我们拦截一切请求
	        UrlBasedCorsConfigurationSource configSource = new
	                UrlBasedCorsConfigurationSource();
	        configSource.registerCorsConfiguration("/**", config);
	        //3.返回新的CorsFilter.
	        return new CorsFilter(configSource);
	    }
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值