关闭页面特效

跨域

1|0跨域


指的是浏览器不嫩执行其他网站的脚本

例如:在网站中使用ajax请求其他网站的天气,快递或者其他数据接口

1|1原因


浏览器的同源策略造成的:

同域名,同端口,同协议

1|2解决方案


Cors协议

H5中的新特性:Cross-Origin Resource Sharing(跨域资源共享)。通过它,我们的开发者(主要指后端开发者)可以决定资源是否能被跨域访问。

cors是一个w3c标准,它允许浏览器(目前ie8以下还不能被支持)像我们不同源的服务器发出xmlHttpRequest请求,我们可以继续使用ajax进行请求访问

跨域的配置

public class CrossFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chiain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest)servletRequest; HttpServletResponse response = (HttpServletResponse)servletResponse; // 允许跨域的地址*表示所有 response.setHeader("Access-Control-Allow-Origin", "http://localhost:8080"); // 表示是否允许发送Cookie response.setHeader("Access-Control-Allow-Credentials", "true"); // 允许跨域的方法 response.setHeader("Access-Control-Allow-Methods", "POST,GET,OPTIONS,DELETE"); // 预检请求的有效期,OPTIONS请求就是想服务端进行探测支持的方法 response.setHeader("Access-Control-Max-Age", "3600"); // 跨域时允许的请求头字段 response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept,Token,tokenzsk,tokenzsk1"); // 检测时直接返回 if ("OPTIONS".equals(request.getMethod())) { response.setStatus(HttpServletResponse.SC_NO_CONTENT); return; } chiain.doFilter(servletRequest, servletResponse); } }

JSONP

前端的解决方案。。。


__EOF__

作  者YXH
出  处https://www.cnblogs.com/YxinHaaa/p/17430877.html
关于博主:编程路上的小学生,热爱技术,喜欢专研。评论和私信会在第一时间回复。或者直接私信我。
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!

posted @   YxinHaaa  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
0
0
关注
跳至底部
点击右上角即可分享
微信分享提示