1.1 跨域的主要方式
跨域方式主要有:1、jsoup 2、后台代理转接 3 CORS
1.2 tomcat的跨域设置
在TOMCAT_HOME/conf/web.xml上的Web-APP 标签内即可
<filter>
<filter-name>CorsFilter</filter-name>
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
<init-param>
<param-name>cors.allowed.origins</param-name>
<param-value>*</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.methods</param-name>
<param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
</init-param>
<init-param>
<param-name>cors.allowed.headers</param-name>
<param-value>Content-Type,X-Requested-With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
</init-param>
<init-param>
<param-name>cors.exposed.headers</param-name>
<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</param-value>
</init-param>
<init-param>
<param-name>cors.support.credentials</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cors.preflight.maxage</param-name>
<param-value>10</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CorsFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
1.3 ArcGIS 的tomcat的目录
<ARCGIS_SERVER_HOME>\framework\runtime\tomcat
1.4 ArcGIS10.2 的CORS支持情况
ArcGIS10.2 是支持CORS跨域的,如果你想操作ArcGIS Server 的API 只需要申请一个Token即可。
1.5 JS示例
function init() {
$.ajax({
type: 'post',
crossDomain: true,
url: 'http://localhost:6080/arcgis/admin/services/ShengYang/SYaccident.MapServer/stop?token=S_F4FXH9JTcnvUiJVITeoNj_NdmeGUHfSoi2rqsRvuYaQQbbbiF5Fwk7HiWI9ruJ',
data: {
f:'json',
},
dataType:'json',
xhrFields: {
'Access-Control-Allow-Origin': '*'
},
success: function(data, textStatus, jqXHR){
// console.log("getAllResponseHeaders:"+jqXHR.getAllResponseHeaders());
console.dir(data);
// Backbone.history.navigate("#booklist",true);
}
});
}