从事web相关开发的同学应该不会陌生跨域这个名词,跨域就是……自行百度
同事在实现一个大数据可视化平台时候遇到一个现象,展示端一般与管理端不在一起,展示端中有一个需求是ajax获取xml并将xml对象返回给echarts的回调,:
require('echarts/util/mapData/params').params.DiySVG = { getGeoJson: function (callback) {
//格式化xml文档
function create_doc(text){
var xmlDoc = null; try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(text); } catch(e) { try //Firefox, Mozilla, Opera, etc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } catch(e) {} } return xmlDoc; }
//跨域获取xml字符串 $.jsonp({ 'contentType': "text/html;charset=UTF-8", 'url': "http://192.168.50.126:8082/DataMapManager/BrowAjax.do", 'data': { dz_type: 'getSvgByName', mapname:"暂未用到,测试写的绝对路径", }, 'dataType':"jsonp", 'callbackParameter':"jsonCallback", 'async':false, 'type': 'get', 'success': function (data) { console.warn( create_doc( data) ); callback(create_doc( data)); }, error:function (resp) { console.error( resp ); } }); } };
java实现方式,由于我是写的一个测试用例,java我用serverlet写了一下:
@WebServlet(name = "BrowAjax")public class BrowAjax extends HttpServlet {
private HttpServletRequest _request;
private HttpServletResponse _response;
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {