什么是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则是一种非官方跨域数据交互协议。