跨域问题来源于javascript同源策略,只有协议+主域名+子域名+端口相同不会有跨域问题。
也就是javascript只能操作和访问自己同域下的资源,不能随意访问其它域名下的资源。跨域主要针对js和Ajax,对于html没有跨域问题,比如a标签、script标签、from标签可以直接跨域访问。
http://www.123.com/index和http://www.123.com/interface 同域
http://www.123.com/index和http://www.456.com/interface 跨域 子域名不同
http://abc.123.com/index和http://def.123.com/interface 跨域 主域名不同
http://www.123.com:8080/index和http://www.123.com:8081/interface 跨域 端口不同
http://www.123.com/index和https://www.123.com/interface 跨域 协议不同
localhost与127.0.0.1 属于跨域
页面在加载javascript时,如果不是同源,则不会被加载。
一、Ajax(dataType:jsonp,参数callback)方式
var url = 'http://127.0.0.1:8081/...'
$.ajax({
url: url,
type: 'GET',
dataType:'jsonp',
jsonpCallback:'test',
success: function(html){
$("#results").append(html);
}
});
jsonpCallback相当于var url = 'http://127.0.0.1:8081/...?callback='test'
二、允许添加响应头
HttpServletResponse.addHeader('Access-control-Allow-Origin',"*");
也就是javascript只能操作和访问自己同域下的资源,不能随意访问其它域名下的资源。跨域主要针对js和Ajax,对于html没有跨域问题,比如a标签、script标签、from标签可以直接跨域访问。
http://www.123.com/index和http://www.123.com/interface 同域
http://www.123.com/index和http://www.456.com/interface 跨域 子域名不同
http://abc.123.com/index和http://def.123.com/interface 跨域 主域名不同
http://www.123.com:8080/index和http://www.123.com:8081/interface 跨域 端口不同
http://www.123.com/index和https://www.123.com/interface 跨域 协议不同
localhost与127.0.0.1 属于跨域
页面在加载javascript时,如果不是同源,则不会被加载。
一、Ajax(dataType:jsonp,参数callback)方式
var url = 'http://127.0.0.1:8081/...'
$.ajax({
url: url,
type: 'GET',
dataType:'jsonp',
jsonpCallback:'test',
success: function(html){
$("#results").append(html);
}
});
jsonpCallback相当于var url = 'http://127.0.0.1:8081/...?callback='test'
二、允许添加响应头
HttpServletResponse.addHeader('Access-control-Allow-Origin',"*");