当前位置: 首页 > news >正文

建站公司网站论坛苏州关键词优化排名推广

建站公司网站论坛,苏州关键词优化排名推广,phpcmsv9手机网站开发,临沂做网站wyjzgzsSame Origin Policy同源策略(SOP) 具有相同的Origin,也即是拥有相同的协议、主机地址以及端口。一旦这三项数据中有一项不同,那么该资源就将被认为是从不同的Origin得来的,进而不被允许访问。 Cross-origin resource…

Same Origin Policy同源策略(SOP)

具有相同的Origin,也即是拥有相同的协议、主机地址以及端口。一旦这三项数据中有一项不同,那么该资源就将被认为是从不同的Origin得来的,进而不被允许访问。

Cross-origin resource sharing跨域资源共享(CORS)

是一个W3C标准。允许浏览器向跨源(协议 + 域名 + 端口)服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。
CORS需要浏览器和服务器同时支持。它的通信过程,都是浏览器自动完成,不需要用户参与。

对于开发者来说,CORS通信与同源的AJAX/Fetch通信没有差别,代码完全一样。
浏览器一旦发现请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。

浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。

  • 简单请求:只要在头信息增加一个Origin字段。是HEAD、GET、POST请求,并且HTTP的头信息不超出以下几种字段 Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type。反之,就是非简单请求。
  • 非简单请求:在正式通信之前,增加一次OPTIONS查询请求,称为"预检"请求(preflight)。浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些HTTP动词和头信息字段。只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错。

Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain

实现CORS很简单,就是在服务端加一些响应头,并且这样做对前端来说是无感知的
在这里插入图片描述

如果在开发中,发现每次发起请求都是两条,一次OPTIONS,一次正常请求,注意是每次,那么就需要配置Access-Control-Max-Age,避免每次都发出预检请求。

方法一

全局配置,(很多旧版的WebMvcConfigurerAdapter被标记为过时Deprecated)

@Configuration
public class CorsConfig implements WebMvcConfigurer{@Overridepublic void addCorsMappings(CorsRegistry registry){registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET","HEAD","POST","PUT","DELETE","OPTIONS").allowCredentials(true).maxAge(3600).allowedHeaders("*");}
}

方法二

基于过滤器方式,在response中写入这些响应头。

@WebFilter(filterName = "CorsFilter")
@Configuration
public class CorsFilter implements Filter{@Overridepublic void doFilter(ServletRequest req,ServletResponse res,FilterChain chain) throws IOException, ServletException {HttpServletResponse response = (HttpServletResponse)res;response.setHeader("Access-Control-Allow-Origin","*");response.setHeader("Access-Control-Allow-Credentials", "true");response.setHeader("Access-Control-Allow-Methods", "POST, GET, PATCH, DELETE, PUT");response.setHeader("Access-Control-Max-Age", "3600");response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");chain.doFilter(req, res);}
}

方法三

@CrossOrigin注解的方式
注解可以放在method、class等上面,类似RequestMapping,也就是说,整个controller下面的方法可以都受控制,也可以单个方法受控制

public class GoodsController{@CrossOrigin(origins = "http://localhost:4000")@GetMapping("goods-url")public Response queryGoodsWithGoodsUrl(@RequestParam String goodsUrl)throws Exception{}
}
http://www.khdw.cn/news/45103.html

相关文章:

  • 类似5173的网站怎么做百度有人工客服吗
  • 平谷网站建设网站优化推广平台
  • 广州网站改版代写文案平台
  • 广东建设协会网站seo是指什么职位
  • 网站做外链平台有哪些百度竞价推广方案范文
  • 网站内容一样影响收录三十个知识点带你学党章
  • 装饰公司怎么做网站百度搜索风云榜人物
  • 政府建设网站网络营销的模式有哪些?
  • 提升自己网站舆情分析系统
  • 网站地图怎么做培训机构排名一览表
  • 网站架构包括杭州余杭区抖音seo质量高
  • 临沂网站推广排名济南百度竞价代运营
  • 深圳网站开发学习安徽网站优化
  • bootstrap开源模板谷歌seo最好的公司
  • 搭建网站的工具seo排名优化公司
  • 中文个人网站欣赏网络推广策划
  • 淄博政府网站建设专家app拉新平台有哪些
  • 科协网站建设的建议2023年新闻热点事件
  • 逸阳网站建设的目标安徽网站关键字优化
  • 太原推广型网站建设百度seo快速提升排名
  • 响水网站设计站长工具综合查询ip
  • 网站模块功能广州网络seo优化
  • 电大形考任在哪个网站做百度浏览器网址是多少
  • 怎么做房地产网站百度指数关键词
  • 合肥做网站的的公司有哪些seo推广排名公司
  • 用网页采集个人信息网站怎么做在线子域名二级域名查询工具
  • 好康的网站代码下载优化大师
  • 阿里云服务器做电影网站吗营业推广策划方案
  • 什么网站发布公司销售新营销模式有哪些
  • 济南网站建设行知keji电话营销外包公司