本篇内容介绍了“jquery ajax报错403如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
jquery ajax报错403是因为前端和服务器的域名不同而触发了防盗链机制,其解决办法:1、打开相应的代码文件;2、通过“public CorsFilter corsFilter() {...}”方法设置允许的域即可。
ajax 调用服务器接口报403错误解决办法
发现问题
在前端页面中远程调用服务器接口时报403错误,而直接在浏览器访问则不会报错。
Ajax调用结果:
浏览器调用结果:
报403原因
经过分析发现是因为前端和服务器的域名不同而触发了防盗链机制。
防盗链机制
防盗链机制是基于http请求头的referer实现的,refer就相当于浏览器页面地址的id,浏览器向服务器发起请求时,会携带referer,服务器通过referer来判断是否是自己的域名,如果不是就会拒绝访问,如果是,则继续访问。
解决办法
对于自身项目而言,解决跨域问题可以通过代码设置允许的域。代码如下:
@Configurationpublic class GlobalCorsConfig { @Bean public CorsFilter corsFilter() { //1.添加cors配置信息 CorsConfiguration config = new CorsConfiguration(); // 允许的域(根据需要进行设置),不要写*, config.addAllowedOrigin("http://localhost:6334"); //是否发送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.addAllowedHeader("*"); //有效时长 config.setMaxAge(3600L); //添加映射网络,拦截一切请求 UrlBasedCorsConfigurationSource configurationSource = new UrlBasedCorsConfigurationSource(); configurationSource.registerCorsConfiguration("/**", config); //返回新的CorsFilter return new CorsFilter(configurationSource); }}
“jquery ajax报错403如何解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。