1、什么就算跨域了,以下三点中只要有一个不同就是跨域啦。
1)、协议不同;2)、域名不同(IP地址不同)、3)、端口号不同
下图来自百度百科
2、测试案例
有两个站点:1)、自定义服务站点(假设为A站点),2)、smland-portal站点(假设为B站点),
A站点服务地址假设为http:A/;B站点服务地址假设为http:B/;
B站点想访问A站点服务信息
B站点前端js文件梳理
1、获取代理地址
/**
* 获取代理地址,返回的地址后进行设置时参数形式为proxy?url=....
* @returns {string} 代理地址
*/
fn.getProxy=function () {
// 获取代理地址
var protocol = window.location.protocol;
var host = window.location.host;
var website = window.location.pathname.split('/')[1];
var proxy = protocol + "//" + host + "/" + website + "/api/ProxyService/Post";
return proxy;
}
2、请求服务
/**
* options:参数信息
* options={
"DatasourceName":"DZYWK",//数据源别名
"DatasetName":"CBK_CBDK",//数据集名称
"Sql":"DKID IN('1212212121')"//删除条件
}
* callback:回调函数
*/
fn.delGeo=function(options,callback){
var settings={"DatasourceName":"", //数据源别名
"DatasetName":"",//数据集名称
"Sql":""//查询sql条件
};
$.extend(settings, options);
var proxy=fn.getProxy();
var url = proxy + "?url=" + gisconfig.customServiceUrl + "edit/DelGeo";
$.ajax({
async:true,
url:url,
type:"POST",
contentType : "application/x-www-form-urlencoded",
data:{
requestEntity :JSON.stringify(settings)
},
success:function (data) {
if (typeof callback === 'function') {
callback(data);
}
},
});
}
B站点后台服务梳理
A站点后台服务梳理