jquery ajax报错403是因为前端和服务器的域名不同而触发了防盗链机制,其解决办法:1、打开相应的代码文件;2、通过“public corsfilter corsfilter() {...}”方法设置允许的域即可。
本教程操作环境:windows7系统、jquery3.2.1版、dell g3电脑。
jquery ajax报错403怎么办?
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视频教程》
以上就是jquery ajax报错403怎么办的详细内容。