Java 跨域问题

什么是javaweb跨域问题:

答:这是由于浏览器同源策略的限制,现在所有支持JavaScript的浏览器都使用了这个策略。那么什么是同源呢?所谓的同源是指三个方面“相同”:域名相同、协议相同、端口相同

下面就举几个例子来帮助更好的理解同源策略。

URL说明是否允许通信:

http://www.a.com/a.js       http://www.a.com/b.js        同一域名        允许    

http://www.a.com/a.js       http://www.b.com/a.js        不同域名        不允许    

http://www.a.com:8000/a.js      http://www.a.com/b.js     同一域名不同端口    不允许    

https://www.a.com/a.js        http://www.a.com/b.js        同一域名不同协议   不允许    

在JAVA中处理跨域问题,通常有以下两种常用的解决方法。

第一种解决方法 :后台代码在被请求的Servlet中添加Header设置:

response.setHeader("Access-Control-Allow-Origin", "*");

 

第二种解决方法 :ajax的访问方式修改为jsonp

$.ajax({
    url: "your url",
    type:"get or post",
    dataType:"json",
    data:{},
    success:function(data){}
    error:function(data){}
});

通过jsonp跨域请求的方式。JSONP和JSON虽然只有一个字母的区别,但是他们完全就是两回事,很多人很容易把他们搞混。JSON是一种数据交换的格式,而JSONP则是一种非官方跨域数据交互协议。

posted @ 2020-03-18 11:15  An-Optimistic-Person  阅读(116)  评论(0编辑  收藏  举报